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

Posted poppylibrary

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译型语言和解释型语言的区别相关的知识,希望对你有一定的参考价值。

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.

以上是关于编译型语言和解释型语言的区别的主要内容,如果未能解决你的问题,请参考以下文章

编译型与解释型动态语言与静态语言强类型语言与弱类型语言的区别

解释型和编译型语言的区别?并举例

编译型语言解释型语言静态类型语言动态类型语言概念与区别

编译型语言解释型语言静态类型语言动态类型语言概念与区别

转载编译型语言解释型语言静态类型语言动态类型语言概念与区别

编译型语言解释型语言静态类型语言动态类型语言概念与区别