由于看Python的官方文档,不清楚解释器是什么,了解后记录下来
由于CPU 只能识别二进制指令(即机器语言),无法识别高级语言,因此所有高级语言在电脑上运行都需要先转变为机器语言。
高级语言分为两种类型:编译型语言和解释型语言。
编译型语言
开发完成后需将所有源代码一次性转换成二进制指令,即生成一个可执行程序(例如 Windows 下的 .exe
文件)。
只要拥有可执行文件,就可以随时运行,不需要重新编译,即脱离开发环境运行。
但不能跨平台,即不能在不同的操作系统之前随意切换,表现在两个方面:①可执行程序不能跨平台;②源代码不能跨平台。
- 转换工具被称为编译器
- 常见 :C语言、C++、Go
解释型语言
每次执行程序一边执行一边转换,需要那些源代码就转换哪些源代码,用不到的不进行任何处理。
执行效率低于编译型语言,计算机的底层功能一般使用编译语言,只有在应用层(网站开发、批处理、小工具等)才会使用解释型语言。
在运行解释型语言时 ,始终需要源代码和解释器,因此无法脱离开发环境。
解释型语言能跨平台(指源代码跨平台),在不同平台下,解释器会将相同的源代码转换成不同的机器码,解释器能够屏蔽不同平台之间的差异。
- 转换工具被称为解释器
- 常见:Python、PHP、JavaScript、Shell
Java 和 C# 是一种比较奇葩的存在,它们是半编译半解释型的语言,源代码需要先转换成一种中间文件(字节码文件),然后再将中间文件拿到虚拟机中执行。Java 引领了这种风潮,它的初衷是在跨平台的同时兼顾执行效率;C# 是后来的跟随者,但是 C# 一直止步于 Windows 平台,在其它平台鲜有作为。