一文彻底明白编译型语言和解释型语言、静态语言和动态语言、强类型语言和弱类型语言、脚本语言的区别

1.编译型语言和解释型语言

编译型语言:编译型语言将源代码提前编译为二进制机器码。优点:已经编译为指定 CPU 架构、操作系统等平台的机器码,无需二次转换,程序运行速度快,缺点:不同的 CPU 架构、操作系统等平台需要不同的编译,跨平台性差。

解释型语言:解释型语言将源代码不是提前编译为二进制机器码,而是运行时再编译。优点:不同的 CPU 架构、操作系统等平台不需要不同的编译,跨平台性好。缺点:未编译为指定 CPU 架构、操作系统等平台的机器码,还需二次转换,程序运行速度慢。

编译型和解释型的定义是对立存在的,但也可以在一个语言中同时存在,比如 Java 语言同时兼有编译型和解释型的特点。整个流程如下:

首先将源代码(.java文件)编译为字节码(.class文件),然后再通过 JVM(Java虚拟机) 解释成二进制机器码。

2.静态语言和动态语言

我们常说的静态语言和动态语言,其实是指静态类型语言和动态类型语言。

静态类型语言:指数据类型的检查是在运行前(如编译阶段)做的。优点:数据类型安全,缺点:需要编写大量的关于数据类型的代码。

动态类型语言:指数据类型的检查是在运行时(如解释阶段)做的。优点:代码相对简洁,省略了编写大量的关于数据类型的代码,缺点:数据类型不安全。

3.强类型语言和弱类型语言

强类型语言:一旦一个变量被声明了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量 a,那么程序根本不可能将 a 当作字符串类型来处理。强类型语言是类型安全的语言。

弱类型语言:它与强类型定义语言相反,一个变量可以被赋与不同数据类型的值,不需要强制转换。弱类型语言是类型不安全的语言。

4.脚本语言

脚本语言:实际上讨论的是程序代码的入口和执行顺序,默认情况下,脚本语言按照脚本中的代码的出现顺序依次执行,传统的编程语言C#Java 会查找程序代码的入口点 main() 方法。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/experience/osexp/1151.html

(1)
huoxiaoqiang的头像huoxiaoqiang
上一篇 2020年3月1日
下一篇 2020年3月6日

相关推荐

  • 计算机字节和位的区别

    计算机内存储和处理信息的最小单位是bit(位或比特),它是BInary digiT(二进制数)的缩写,一个位的值可以是0或1,计算机通常不会每次只对一个二进制位进行操作,它们会对一组二进制位进行操作,8个二进制位为一个字节(Byte),现在的微处理器都是面向字节的,所以说计算机存储信息的最小单位是字节也是对的,它的二进…

    操作系统经验 2021年3月1日
    01.5K0
  • 形参(parameter)和实参(argument)的区别

    首先解释一下,英文单词 formal 的意思:正式的;拘谨的;有条理的。英文单词 actual 的意思:真实的;实际的;真正的。 形参(parameter)是形式参数的简称,又名Formal parameter,是在定义函数时跟在函数名后圆括号里面的变量名。 实参(argument)是实际参数的简称,又名Actual …

    操作系统经验 2020年3月6日
    01.1K0
  • Linux常用命令一览表

    1.系统管理 命令 全称 描述 login —————— 登陆系统 logout —————— 登出系统 poweroff —————— 立即关闭系统 shutdown —————— 延时关闭系统 reboot —————— 重启系统 mount —————— 挂载目录到分区 umount —————— 从分区卸载目录…

    操作系统经验 2023年1月22日
    02530

发表回复

登录后才能评论