程序的执行
解释:借助一个程序,那个程序能试图理解你的程序,然后按照你的要求执行。
编译:借助一个程序,就像一个翻译,把你的程序翻译成计算机真正能懂的语言---机器语言---写的程序,然后,这个机器语言写的程序就能直接执行了。
注意:
这里解释,不需要生成新的文件,是解释器去执行,调用机器;
这里编译,会生成一个翻译好之后的文件,再执行这个翻译(编译)后的文件,调用机器。
编译会生成编译后的文件。
因为有这样的方式去执行程序,所以这里就会产生一个误解,就是说这个语言是解释执行的,那个语言是编译执行的,其实对于计算机的编程语言来说语言本身是没有解释和编译区分的,任何一个语言既可以解释执行,也可以编译执行,这只是传统和习惯的问题。比如:python有解释器,如果我们有对Python进行编译的编译器,那么python也可以编译后执行了。
解释语言 vs 编译语言
解释型语言有特殊的计算能力:
源代码在执行的过程中被不断地进行解读,那么我们可以做一些特殊的事情,比如说,在运行过程中对源代码进行修改。以前我们会认为解释型语言运行的慢,因为不是直接在计算机中运行的,但是现在来说,由于计算机运算能力提升,现在两者之间运行效率没有太大区别。
编译型语言有确定的运算性能:
同样的程序在运行中运行效率是确定的。
在如今,两者之间运行效率已经没有太大的区别。