1. 编译型语言的工作原理
属于编译型语言的有:C、C++、Delphi等,其中选取C语言为代表来说明。首先,C编程的基本策略是,用程序把源代码文件转换为可执行文件。
典型的C实现通过编译和链接两个步骤来完成这一过程:
1.程序员使用文本编辑器创建源代码文件
2. 编译器把源代码翻译成中间代码(机器语言),并把结果放在目标代码文件中
3. 链接器把中间代码和系统的标准启动代码、库函数代码合并成可执行文件,并交由CPU去执行
*科普:
1. 启动代码,充当着程序和操作系统之间的接口,不同操作系统对应不同的启动代码,因为这些系统处理程序的方式不同。
2. 库函数代码,为C标准库中的函数,几乎所有的C程序都要使用。例如,example.c中用了printf()函数,目标代码文件并不包含该函数的代码,它只包含了使用printf()函数的指令。printf()函数真正的代码储存在另一个被称为库的文件中。库文件中有许多函数的目标代码。
图1 编译器和链接器
2. 解释型语言的工作原理
属于解释型语言的有:Python、JavaScript 、 Perl 、Shell等,其中选取Python为代表来说明。首先,Python编程的基本策略是,用程序把源代码文件一行一行地转换为可执行代码。
典型的Python实现通过解释这个步骤来完成这一过程:
1.程序员使用文本编辑器创建源代码文件
2. 解释器从上到下逐一读取源代码,读取一行,翻译一行,并把翻译结果(机器语言)交由CPU去执行,以此往复
图2 解释器
3. 总结
1. 从执行速度而言,编译型语言更快。
编译型语言执行的时候,CPU可直接读取可执行代码(机器语言),速度很快。
解释型语言执行的时候,需要解释器翻译一行,CPU执行一行,速度相对较慢。
2. 从跨平台而言,解释型语言更便利。
编译型语言,不仅要根据不同CPU安装对应编译器,还需要根据不同操作系统选用应不同启动代码,不便利。
解释型语言,仅需要根据不同操作系统安装对应解释器,十分便利。
参考文献:
[1]Stephen Prata.C Primer Plus[M].(第6版).北京:人民邮电出版社,2016:10-11.
[2]黑马程序员-.Python教程_600集Python从入门到精通教程[DB].Bilibili,2017.
来源:https://www.cnblogs.com/poppylibrary/p/12284001.html