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

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日

相关推荐

  • Google Chrome浏览器的扩展程序被安装在哪个目录?

    Google Chrome浏览器的扩展程序因不同的操作系统可能会被安装在不同的目录,可通过以下方法查看。 1.在Google Chrome浏览器地址栏中输入chrome://version,然后按Enter回车键。 2.打开上图中”个人资料路径”的路径,该路径下的Extensions目录即默认的…

    操作系统经验 2019年12月31日
    09.1K0
  • 查看Ubuntu基于Debian哪个发行版本的方式

    可以通过查看 /etc/debian_version 文件的方式知道 Ubuntu 基于 Debian 哪个发行版本。 以 Ubuntu 22.04 LTS 版本为例,输出如下: 说明 Ubuntu 22.04 LTS 版本基于 Debian 12(代号bookworm) 的不稳定(unstable)版本。 备注:不稳…

    操作系统经验 2020年12月13日
    05.2K0
  • Linux常用命令一览表

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

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

发表回复

登录后才能评论