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

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日 22:23
下一篇 2020年3月6日 23:55

相关推荐

  • Bash的调用方式

    1.交互式登陆shell或带–login选项的非交互式shell 当Bash作为交互式登录shell,或者作为带 –login 选项的非交互式shell调用时,会依次读取并执行以下配置文件的命令:/etc/profile, ~/.bash_profile,~/.bash_login,~/.profile。 如果使用…

    操作系统经验 2023年3月28日
    08550
  • 计算机字节和位的区别

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

    操作系统经验 2021年3月1日
    01.7K0
  • 将双系统默认启动Ubuntu改为默认启动Windows的步骤

    1.进入 Ubuntu 操作系统,使用 vi 打开 /etc/default/grub 文件。 2.输入 i ,进入 vi 编辑模式。因为笔者 Windows 操作系统位于第 5 个,所以将 GRUB_DEFAULT=0 更改为 GRUB_DEFAULT=4。然后在键盘上按下 Esc 按钮退出编辑模式,输入 :wq 保…

    操作系统经验 2023年7月17日
    04540

发表回复

登录后才能评论