高级程序设计语言主要可以分为两类:编译执行的语言和解释执行的语言,对应的程序即为编译程序和解释程序,那么这两个之间的区别是什么呢?
根本区别
编译程序和解释程序的根本区别在于是否产生低级语言形式的目标程序。
编译程序在生成可执行文件之后,花费的时间就会比解释程序短,因为编译程序已经转换成低级语言形式了,而解释程序还需要重新先转换成低级语言形式,这就相当于多走了一段路程,花费的时间自然就会长一些。
编译程序
这里以C语言为例,首先我们编写的源程序的文件后缀名为.c
文件,然后点击运行之后,首先进行预处理,这一步主要是处理宏定义,得到纯C文件,然后通过编译器处理,得到汇编程序.s
文件,之后又通过汇编器处理,得到目标文件.o
文件,最后通过链接器得到最终的.exe
文件,之后我们只需要双击这个.exe
文件就可以运行程序,因此在别人的电脑上就也可以运行了,当然如果不是Windows电脑,可能会需要进行一些环境的配置。
如下为GCC的处理过程:
解释程序
这里以Python为例,我们编写的源程序的文件后缀名为.py
文件,然后执行的时候我们可以在IDE的控制台上看到各种信息,这也说明我们每次运行程序的时候,都是需要重新编译的。
如果用过Python,我相信应该有时候可能会碰到这种情况:我们拿着网上别人写的Python代码,然后在自己的电脑上运行的时候,有时候会无法运行,提示信息是说有一个库没有找到,这是因为我们自己的电脑上没有安装相应的库,所以有时候我们下载别人的代码的时候,需要先进行各种调试。