您的位置:首页 > 百科 > 正文

解释型语言

相对于编译型语言存在衣牛视月的,源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进我见种行解释运行。比如Python/JavaScript / Perl /Shell等都是解释型语言。

解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执 行一次都要翻译一次。因此效率比较低。比如Basic语言,专门有一个解释器能够直接执行Basic程 序,每个语句都是执行来自的时候才翻译。(在运行程360百科序的时候才翻译,专径间门有一个解释器去进担越行翻译,每个语句都是执行的时候才尔况反定接背翻译。效率比较低,依赖解释器,跨 平台性好.)

  • 中文名 解释型语言
  • 特点 源代码不是直接翻译成机器语言
  • 相对 编译型语言
  • 例子 Python,JavaScript,Perl,Shell
  • 运行 先翻译成中间代码,由解释器运行

​两种方式

  计来自算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。

  一个是编译,一个是解释。两种方式只是翻译的时间不同吃列风诗宣。编译型语言写的程序执末请理制根商行之前,需要一个业副鲁刑小胜损此专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe模理刑问龙华文件),因为翻译只做了一次360百科,运行时不需要翻译,所以编译型语言的程序执行效率高,但也不能一概而论,部分解释型语言的解释器通过在运行时动态优化代码,甚至能够使解释型语言的性能超过编译型语言。

  解释则不同,解释性语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门有一个解释器能够直接执行basic程序,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。解释是一句一句的翻译。

利弊

  前者由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采怀仅木历仍用它,像C/C++、Pas因满双cal/Object Pascal(Delphi)迅金日本鱼让信的等都是编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如JavaScri而观优若师城pt、VBScript、Perl、Python、Ruby、MATLAB 等史坐压煤击故封支七太等。

  但随着硬件的升级和设鸡圆己今飞交求量计思想的变革,编译型和板抗三胶审众弦屋解释型语言越来越笼统,主要体现在一些新兴的高级语言上,而解释型语言的自身特点也使得编译器厂商愿意花费更多成本来优化解释器,解释型语言性能超过编译型语言也是必然的。

编译型语言

  编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,来自直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等.

区别

  解释性语360百科言在运行程序的时候才翻译,比如解释性basic语政空参跑言,专门有一个解释器能够直接执行basic程序,每个语句都是季田裂娘案省流执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。

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

  前者由于程序执行速度形六出快,同等条件下对系统要求较低,因此像开发操作系统、大型应用慢武抓粮报他程序、数据库系统等时都采用它,像C/C++、Pascal/O放资bject Pascal(Delphi)等都是编译语言,而一些网页脚本、服务器脚本及辅助黄待大织写开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如Java、JavaScript、VBScript、Perl、Py政措丰哪相thon、Ruby、MATL冷县镇药该双乐系响呢孔AB 等等。

编译性语言不如解道服端证释性语言跨平台性好

  编译性语言例如c语言:用跳投宁于快尼洋c语言开发了程序后,需要通过编译器把程序编译成机器语言(即计算机识别的二进制文件,因为不同的操作系统计算机识别的二进制文件是不同的),所以c语言程序进行移植后,要重新乱凯程般编译。(如windows编译成ext文件,linux编译成erp文件)。

  解释性语言,例如眼觉亮料保圆java语言,java程序首帝进体先通过编译器编译成class文件,如曲输果在windows平台上运行,则通过windows平台上的java虚拟机(VM老稳苏刘落换班统明掉)进行解释。如果运气随落行在linux平台上,则通过linux平台上的java虚拟机进行解释执行。所以说能跨平台,前提是平台上必须要有相匹配的java虚拟机。如果没有java虚拟机,则不能进行跨平台。

发表评论

评论列表