现在的位置: 首页 > 综合 > 正文

编译执行语言和解释执行语言

2013年09月17日 ⁄ 综合 ⁄ 共 659字 ⁄ 字号 评论关闭

高级语言里一个程序的编译和执行大概是 下面的情况:

 

 

 

编译器将高级语言从源代码翻译成与之等价的目标程序(就相当于从中文翻译成中文),而后就隐退了。在随后的某个时刻,用户启动目标程序由操作系统执行。实现高级语言的另外一种方式为解释:
与编译不同的是,解释器在目标程序(其实根本就没有目标程序,只是与编译来对比)执行期间,解释器一直随之运行。这种执行过程完全由解释器控制的。从效果上看,解释器实现了一台“虚拟计算机”,其“机器语言”就是高级语言,解释器一次读入一条或多条语句,按照其自身规定的方式去执行相应的操作。一般说来,解释比编译有着很好的灵活性;编译一般有着较好的性能。但是有些语言确是采用了两者的混合形式:
书中的原文:”如果初始阶段的翻译器比较简单,我们就说这个语言是“解释的”。如果翻译器很复杂,我们就说这一语言是“编译的”。现在两者的区分变得有些模糊了,因为“简单”和“复杂”都是修饰性术语,也因为完全可能出现用一个编译器(复杂的翻译过程)生成代码,而后又由一个复杂的虚拟机(解释器)执行。对于最后这种情况,如果翻译器对程序做了彻底的分析(而不是做某种“机械的”变换),而且有关的中间语言程序与源程序并没有很强的相似性,我们还是说这个语言是编译的。这两种特性----彻底的分析和非平凡的变换-----是刻画编译方式的标志性特征。“

 

 

举例:编译性语言:c、c++,delphi,Fortran、Pascal、Ada

 

        解释性语言:java,vb,python(持续总结中)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

抱歉!评论已关闭.