1、编译型语言
- 通过**编译器(compiler)将源代码****编译成特定的平台的机器码**之后,才能执行的语言。
- 源程序(用编辑器编写来的源代码,英文代码) – 》**机器码**程序 --》 直接操作机器。
- **机器码**包含了大量的机器指令。
- 平台有:windows、linux,由于不同平台的**机器指令**各有差别。
- 因此,编译生成的机器码程序通常只能在特定的平台运行,就是**不跨平台**。
- 一般需经过**编译(compile)、链接(linker)**这两个步骤。
- 编译是把源代码****编译成特定的平台的机器码。
- 链接是把各个模块的机器码和依赖库串连起来生成可执行文件。
- 优点:
- 可以针对特定的平台优化,因此,性能可以得到改善。
- 缺点:
- 编译生成的程序,只能在特定的平台上运行。不能跨平台。
- 代表语言:C、C++
2、解释型语言
- 不需要编译,在**运行程序时,需要逐行翻译****特定平台的机器指令**。
- 源程序(用编辑器编写来的源代码,英文代码) --》 windows 平台(经过一个“翻译工具”,将该源代码“翻译”成特定平台的机器指令。该翻译工具被称为**解释器**)。
- 优点:
- 通常可以跨平台。
- 缺点:
- 需要为不同的平台提供解释器。
- 每一次运行的时候都需要一次解释(转换为机器指令)性能略差。
- 代表语言:JavaScript、Python、Erlang、PHP、Perl、Ruby。