编译型语言和解释型语言的区别

我们两清 提交于 2020-02-08 17:53:53

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.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!