参考:https://www.jianshu.com/p/54e2aeca013b 编译和解释: 前者源程序编译后即可在该平台运行,后者是在运行期间才编译。所以前者运行速度快,后者跨平台性好。
编译型语言使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式。 特点在编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码编译成机器语言的文件,如exe格式的文件,以后要再运行时,直接使用编译结果即可,如直接运行exe文件。因为只需编译一次,以后运行时不需要编译,所以编译型语言执行效率高。 总结1.一次性的编译成平台相关的机器语言文件,运行时脱离开发环境,运行效率高; 2.与特定平台相关,一般无法移植到其他平台; 3.现有的C、C++、Objective等都属于编译型语言。
解释型语言使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。是代码在执行时才被解释器一行行动态翻译和执行,而不是在执行之前就完成翻译。 特点解释型语言不需要事先编译,其直接将源代码解释成机器码并立即执行,所以只要某一平台提供了相应的解释器即可运行该程序。 总结1.解释型语言每次运行都需要将源代码解释称机器码并执行,效率较低; 2.只要平台提供相应的解释器,就可以运行源代码,所以可以方便源程序移植; 3.Python等属于解释型语言。
参考:https://blog.csdn.net/dajian35/article/details/81368548
扩展 编译型和解释型的定义是对立存在的,但也可以在一个语言中同时存在。比如 java 语言同时兼有编译型和解释型特点。整个流程如下: 将源代码(.java 文件)编译生成字节码(.class 文件),再通过 JVM(java 虚拟机)运行生成机器指令,由机器运行机器码。注意,此处生成机器语言前的操作是解释型,每次运行都要重新解释。因此,此处表明 java 是解释型。
|