编译型语言和解释型语言

 

 

 

编译型语言和解释型语言的区别?

       

计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也就是机器码。而这种转换的方式有两种:

 

1.编译

2.解释

 

由此高级语言也分为编译型语言和解释型语言。

 

主要区别在于,前者源程序编译后即可在该平台运行,后者是在运行期间才编译。所以前者运行速度快,后者跨平台性好。

 

 

 

编译型语言 : 程序执行前将代码全部编译一遍(如c,c++) 编译完成后 程序再执行

优点:编译型语言在运行前翻译,效率高

缺点:但是因为编译前无法得知运行环境的情况,故不能跨平台执行

 

 

解释型语言 : 程序边执行边解释代码(一行一行的解释,故解释型语言运行效率较低)(如javascript,python) 不是一下就全部解释完的

,但当你又想知道上句内容还得重新翻译(把上一句重新翻译一遍)

优点:不用在运行前将整个翻译一遍,节省时间

缺点:一行一行的解释,故解释型语言运行效率较低

 

 

编译和解释 都可以理解成翻译

 

外国人看不懂中文书  把整个书翻译成英文了 再看 就看得懂了

外国人看不懂中文书 要看书的那个部分 就翻译那个部分 不用一次把整个书都翻译完

 

 

编译型的 如果代码有变更  那项目要重新再编译一遍了  而解释型的就不用这样了  因为它是边执行边解释的

 

 

关于java

Java和其他的语言不太一样。因为java针对不同的平台有不同的JVM,实现了跨平台。所以Java语言有一次编译到处运行的说法。

1.你可以说它是编译型的:因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。 

2.你可以说它是解释型的:因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。 

3.但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的。

 

java语言 既是编译型的也是解释型的 先从java文件 编码成 class字节码文件 然后经由类加载器加载到内存  由字节码校验器校验代码语法 如果没有问题

再经过解释器把代码解释成机器语言给操作系统能识别的机器语言

 

 

 

 

将java认为成解释型语言也是可以的

因为虽然java也需要编译,编译成.class文件,但是并不是机器可以识别的语言,而是字节码,最终还是需要 jvm的解释,才能在各个平台执行,这同时也是java跨平台的原因。所以可是说java即是编译型的,也是解释型,但是假如非要归类的话,从概念上的定义,恐怕java应该归到解释型的语言中。 

编译型的语言包括:C、C++、Delphi、Pascal、Fortran 

解释型的语言包括:Java、Basic、javascript、python

 

 

编译型与解释型,两者各有利弊

前者由于程序执行速度快同等条件下对系统要求较低,因此像开发操作系统大型应用程序、数据库系统等时都采用它,像C/C++、Pascal/Object Pascal(Delphi)等都是编译语言,而一些网页脚本服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如JavaJavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。

 

posted @ 2021-01-13 13:38  cnng  阅读(324)  评论(0编辑  收藏  举报