编译性语言与解释性语言

计算机不能直接理解高级语言,所以需要将高级语言翻译成机器语言,翻译有两种方式:编译、解释,这两种方式主要是翻译的时间不同。

编译性语言

编译性语言指代码需要先编译成机器语言的二进制文件,然后再执行。这样在执行的时候就不需要再翻译了,所以执行效率高。典型的有C/C++。

解释性语言

解释性语言指跳过编译阶段,直接运行,在运行时翻译。每次执行都需要翻译一次,所以效率较低。每种解释性语言都有对应的引擎来解释执行。有点类似于“同声翻译”,代码一边由相应的解释器“翻译”成机器语言,一边执行。脚本语言都是解释性的,典型的有Python、JavaScript。

Java比较特殊,即包含编译,也包含解释。先编译成字节码(可以被Java解释器解释的独立于平台的中间代码),然后解释器分析执行每条Java字节指令。Java字节码可以看做是运行在Java虚拟机JVM上的机器代码,其使得“写一次,到处运行”成为可能。

我们也可以将C和Java称为系统语言,将解释性语言具体化为脚本语言。下面分析这两种的区别:

1、抽象:脚本语言的抽象级别更高,这种语言自身中,存在高级的数据结构,如列表和字典结构

2、类型:系统语言通常是强类型和静态类型定义的,所有变量的类型要在程序中指定,在编译时检查。脚本语言是松散的类型定义,完全没有类型声明,在运行时进行动态类型检查。

3、执行:系统语言的特点是编译,编译成可执行的二进制再执行。脚本语言的特点是解释,指令被立即执行,跳过了中间的编译过程。脚本语言是交互式的,敲入命令就能看到结果。

4、速度:上面三点是脚本语言在速度与效率、易用性与表示式的强大性之间进行折衷的表现。这就使得脚本语言的执行速度比系统语言慢一个数量级,但性能降低不是真正的问题。思想是用脚本语言来组合组件,这些组件是用C这样的快速系统语言来编写的。所以所有需要运行快速的东西将因为是用快速的语言实现的而运行的快速,脚本语言只用于将东西绑在一起。

5、灵活:编译语言修改不灵活,发现问题后需要修改源代码后先编译,再执行,然后了解修改得对不对。脚本语言可以直接修改执行看效果。

6、依赖:编译语言可以脱离其语言环境独立执行,但解释型语言不能脱离其解释器。

编译性语言与解释性语言

时间: 2024-07-29 18:34:22

编译性语言与解释性语言的相关文章

编译性语言和解释性语言分析

常见的编译性语言和解释性语言 计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序. 机器翻译的方式有两种,一个是编译,一个是解释.两种方式只是翻译的时间不同. 解释性语言:Java.Python.Perl.C#.JavaScript.VBScript.Ruby.MATLAB等. 编译性语言:C/C++.Pascal/Object Pascal(Delphi)等. 编译性语言 编译型语言写的程序执行之前,需要一个专门的编译过程,把

编译性语言、解释性语言和脚本语言

1.计算机不能直接理解高级语言,只能理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序.(计算机只能执行机器语言:我们要执行高级语言编的代码,就只能用编译器把它变成机器语言) 2.翻译有两种方式:a.编译b.解释.两种方式主要是翻译的时间不同 3.编译语言:编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成机器语言文件:比如,exe文件,以后运行的话就不用重新编译了,直接使用编译的结果就行了:因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序

编译性语言不如解释性语言跨平台性好

编译性语言例如c语言:用c语言开发了程序后,需要通过编译器把程序编译成机器语言(即计算机识别的二进制文件,因为不同的操作系统计算机识别的二进制文件是不同的),所以c语言程序进行移植后,要重新编译. 解释性语言,例如java语言,java程序首先通过编译器编译成class文件,如果在windows平台上运行,则通过windows平台上的java虚拟机(VM)进行解释.如果运行在linux平台上,则通过linux平台上的java虚拟机进行解释执行.所以说能跨平台,前提是平台上必须要有相匹配的java

编译性语言和解释性语言

一.解释性语言和编译型语言: 定义: 编译型语言:把做好的源程序全部编译成二进制代码的可运行程序.然后,可直接运行这个程序. 解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束! 特点: 编译型语言,执行速度快.效率高:依靠编译器.跨平台性差. 解释型语言,执行速度慢.效率低:依靠解释器.跨平台性好. 举例:编译型的语言包括:C.C++.Delphi.Pascal.Fortran 解释型的语言包括:Basic.javascript.Python. 二.Java和Python的语言执行原理

编译性语言、解释性语言和脚本语言的区别

http://www.cnblogs.com/wvvv/p/5227318.html计算机是不能理解高级语言,当然也就不能直接执行高级语言了.计算机只能直接理解机器语言,所以任何语言,都必须将其翻译成机器语言,计算机才能运行高级语言编写的程序. 一.翻译和解释的不同 翻译的方式有两种,一个是编译,一个是解释. 两种方式只是翻译的时间不同.编译型语言写的程序在被执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(

java是编程式语言还是解释性语言

一.你可以说它是编译型的.因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有. 二.你可以说它是解释型的.因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了. 三.但是,现在的JVM为了效率,都有一些JIT优化.它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的.像C.C++ 他们经过一次编译之后直接可以编译成操作系统了解的类型,可以直接执行的 所以他们是编译型的语言.没有经过第二次的处理 而Java不

解释性语言和编译性语言的区别

解释性语言和编译性语言的区别 计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序. 翻译的方式有两种,一个是编译,一个是解释.两种方式只是翻译的时间不同. 编译性语言 编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高. 解释性语言 解释则不同

编译性语言&解释性语言

计算机是不能理解高级语言,当然也就不能直接执行高级语言了.计算机只能直接理解机器语言,所以任何语言,都必须将其翻译成机器语言.任何编程语言编写的程序归根到底都是由底层机器的机器代码(01序列)执行的,无论是编译型语言还是解释型语言.而任何高级编程语言程序的源代码都是一个字符序列,这个字符序列到底层的01序列是通过编译器或解析器经过多次转换完成的. 编译 vs 解释 翻译的方式有两种:一种是编译,一种是解释. 两种方式翻译的时间不同. 编译型语言写的程序在被执行之前,需要一个专门的编译过程,把程序

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

编译型语言:在程序执行之前,有个单独的编译过程,将程序翻译成机器语言,所以执行这个程序的时候就不用再次进行翻译了 常见的有:c/c++.Pascal/Object Pascal(Delphi) 优劣:执行速度快,像操作系统.大型应用程序.数据库系统用的比较多 解释性语言:在程序运行的时候翻译成机器语言,每运行一次就翻译一次,所以比编译型语言慢 常见的有:java/c#.脚本语言 优劣:跨平台型好,网页脚本.服务脚本及辅助开发接口使用较多 脚本语言:解释性语言的一种,可以直接用(解释器来负责解释)