本文主要总结语言类型间特点、区别、优劣势(个人学习自用,内容仅供参考,可能有不对的地方欢迎指正)。
- 编译型语言(Compiled Languages):
- 编译型语言在程序执行之前,需要通过编译器将整个源代码(例如,C、go、C++等)转换成目标机器码(即二进制代码)。
- 一旦编译完成,用户可以直接运行生成的可执行文件,而无需再次进行编译,如果出现错误,只会重新编译出错部分,出错重新运行效率更高。
- 编译型语言通常具有更高的运行效率,因为编译过程进行了许多优化,并且机器码可以直接由计算机的CPU执行。
- 解释型语言(Interpreted Languages):
- 解释型语言在程序运行时,通过解释器逐行读取源代码(例如,Python、java、等),并立即执行相应的操作。
- 用户不需要提前编译源代码,而是直接运行源代码文件,解释器会负责将其转换成机器码并执行。
- 由于解释型语言在运行时需要逐行解释代码,因此其执行效率通常低于编译型语言,也因为是逐行解释运行,一点出现错误就要全部从新解释,运行速度相对较低,一般来说无法像c对内存进行直接管理。
- 脚本语言(Scripting Languages):
- 脚本语言通常被视为解释型语言的一个子集,它们主要用于自动化任务、网页开发、系统管理等。
- 脚本语言(例如,Bash、PowerShell、JavaScript等)通常具有简单、易学的语法,并且可以直接在命令行或特定的环境中执行。
- 脚本语言通常与解释器一起使用,以便在运行时动态地执行代码。
- 脚本语言可以与其他编程语言或工具集成,以实现更复杂的任务和功能。
需要特别注意,Java既有编译型语言特点也有解释型特点,其先编译为.class文件再由JVM进行解释运行,这也是其支持跨平台特性原因。