⑴ 关于“编译型语言”和“解释性语言”的区别
1、程序控制权不同:
对于解释性语言而言,程序运行时的控制权在解释器(jre,.net)而不再用于程序。编译型语言对于编译器而言,运行时的控制权在用户程序。
2、运行速度不同:
一些网页脚本,服务器脚本以及辅助开发接口这样的对速度要求不高,对不同系统的兼容性有一定要求的程序则通常使用解释性语言,如java、JavaScript、VBScript、Perl、python、Ruby、Matlab等等。
编译语言由于程序执行速度快,同等条件下对系统的要求比较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,像C/C++,Pascal/Object Pascal(Delphi)等都是编译型语言。
3、移植性不同:
解释型语言,例如Java语言,Java程序首先通过编译器编译成class文件,如果在Windows平台上运行,则通过Windows平台上的Java虚拟机(VM)进行解释。如果运行在Linux平台上,则通过Linux平台上的Java虚拟机进行解释执行。
所以说能跨平台,前提是平台上必须要有相匹配的Java虚拟机。如果没有Java虚拟机,则不能进行跨平台。
编译型语言,例如C语言,用C语言开发程序后,需要通过编译器把程序编译成机器语言(即计算机可以识别的二进制文件,因为不同的操作系统识别的二进制文件是不同的),所以C语言程序进行移植后,需要重新编译(如Windows编译成ext文件,Linux编译成erp文件)。
⑵ 编译程序和解释程序有何区别
编译程序能生成目标程序,而解释程序不能。
⑶ Python 编译器与解释器
编译器是整体编译再执行,而解释器是边解释便执行。
举个简单的例子,编译器就相当于你买了一桶海底捞,那么所有海底捞食材都是整体“编译”好,只要通过倒水(执行)就可以吃,而解释器相当于你去海底捞门店,然后菜是一道一道上(一条一条解释这是啥菜),你是一道一道放入汤中吃(执行)。
编译器 的特点是:
解释器 的特点是:
python的源文件通过解释器进行模块的加载及链接,然后将解释完成的字节码存入内存,提供给CPU进行操作,然后写入本地的.pyc文件,其触发条件是判断 是否存在.pyc文件+比较源文件与编译的.pyc文件的时间戳
⑷ 编译器和解释器的主要区别是什么他们相对于对方各自的优点
解释器
是
解释执行
的源代码,
编译器
是将源代码编译成
目标代码
他们最大的区别是程序运行时需要解释器边解释边执行,而编译器则在运行时是完全不需要的
解释器的优点是比较容易让用户实现自己跨平台的代码,比如java,php等,同一套代码可以在
几乎所有的
操作系统上执行,而无需根据操作系统做修改;
编译器的目的就是生成目标代码再由连接器生成可执行的
机器码
,这样的话需要根据不同的操作系统编制代码,虽然有像Qt这样的源代码级跨平台的编程工具库,但在不同的平台上仍然需要重新编译连接成可执行文件,但其执行效率要远远高于解释运行的程序。
编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;
而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.
这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)
⑸ 编译和解释的区别是什么
1.定义区别
①编译原理旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。
②汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
2.处理方式区别
①编译过程与解释挺像,区别就在于编译是将所有的源代码指令一次性成翻目标代码并执行。
②汇编过程就是把汇编指令一对一地翻译成01机器码的过程。而采用这种处理方式的语言只有一类:汇编语言。
3.特点区别
①编译语言的特点就是不需要解释器的参与,所以运行比较快,但是编译好的程序只能在当前平台运行,是个局限性。
②汇编语言是当今世界上历史最早,应用最广,功能最强大,运行速度最快的编程语言。但是汇编语言开发工期长,可读性差,并且不能跨平台编程。
⑹ 计算机高级语言里面的编译型和解释型有什么区别
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可
将它们分为两类:
1.解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由
相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不
能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可
以动态地调整、修改应用程序,典型的解释型的高级语言有BASIC。
2.编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码
(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。
但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(*.OBJ)才
能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型
的,例如Visual C++、Delphi等。
高级语言里一个程序的编译和执行大概是 下面的情况:
编译器将高级语言从源代码翻译成与之等价的目标程序(就相当于从中文翻译成中文),而后就隐退了。在随后的某个时刻,用户启动目标程序由操作系统执行。实现高级语言的另外一种方式为解释:
与编译不同的是,解释器在目标程序(其实根本就没有目标程序,只是与编译来对比)执行期间,解释器一直随之运行。这种执行过程完全由解释器控制的。从效果上看,解释器实现了一台“虚拟计算机”,其“机器语言”就是高级语言,解释器一次读入一条或多条语句,按照其自身规定的方式去执行相应的操作。一般说来,解释比编译有着很好的灵活性;编译一般有着较好的性能。但是有些语言确是采用了两者的混合形式:
书中的原文:”如果初始阶段的翻译器比较简单,我们就说这个语言是“解释的”。如果翻译器很复杂,我们就说这一语言是“编译的”。现在两者的区分变得有些模糊了,因为“简单”和“复杂”都是修饰性术语,也因为完全可能出现用一个编译器(复杂的翻译过程)生成代码,而后又由一个复杂的虚拟机(解释器)执行。对于最后这种情况,如果翻译器对程序做了彻底的分析(而不是做某种“机械的”变换),而且有关的中间语言程序与源程序并没有很强的相似性,我们还是说这个语言是编译的。这两种特性----彻底的分析和非平凡的变换-----是刻画编译方式的标志性特征。“
根据以上标准,首先CSC只是对C#到IL做”机械“的翻译,而且C#和IL之间有很强的相似性,因为两者的程序代码几乎可以100%相互转换(比如reflector可以将C#反编成IL,也可以将IL反编为C#)。您认为呢?
PS:再者某些人认为的ngen和cache程序集其实也是支持C#是解释语言的结论,因为编译型语言因为性能的天然因素是不需要这些手段的
应该是这个吧。。。。。。。
⑺ 即时编译器和JAVA解释器的区别
即时编译器预先把程序编译完成,当执行时就直接调用。
而JAVA解释器则是当需要调用该代码时才临时编译解释,而且没执行一次就要编译一次,而即时编译器则是一次编译多次执行。
⑻ 解释和编译有什么区别
一、与计算机的交流方式不同
1、解释程序不产生目标代码,它逐条地取出源程序中的语句,边解释,边执行;解释器把源代码文件边解释成机器语言边交给CPU执行。
三、开发便捷性
1、解释程序可以随时修改,立刻生效,改完源代码后,直接运行看效果
2、编译程序每次修改源代码,都要重新编译,生成机器码文件
四、运行速度
1、解释程序运行效率低,所有的代码均需经过解释器边解释变执行,速度比编译型慢很多
2、编译程序执行速度快,因为你的程序代码已经翻译成了是计算机可以理解的机器语言。