编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。(就像咱们的oc,上线的时候打包的时候就是编译成了计算机能认识的,到了手机上直接运行很快,你在开发的时候每次都是先编译一下 你会发现很慢)
解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。
C/C++ 等都是编译型语言,而Java,C#等都是解释型语言。
虽然Java程序在运行之前也有一个编译过程,但是并不是将程序编译成机器语言,而是将它编译成字节码(可以理解为一个中间语言)。
在运行的时候,由JVM将字节码再翻译成机器语言。
注:脚本语言一般都有相应的脚本引擎来解释执行。 他们一般需要解释器才能运行。pyhton,JAVASCRIPT,ASP,PHP,PERL,Nuva都是脚本语言。C/C++编译、链接后,可形成独立执行的exe文件。
4.脚本语言是一种解释性的语言,例如vbscript,javascript,installshield script,ActionScript等等,它不象c\c++等可以编译成二进制代码,以可执行文件的形式存在.
脚本语言不需要编译,可以直接用,由解释器来负责解释。
一,编译型语言:
编译生成的可执行程序可以以脱离开发环境,在特定的平台上独立运行。
因为编译型语言是一次性的编译成机器码,所以可以脱离开发环境独立运行,而且通常运行效率较高;但因为编译性语言的程序被编译成特定平台上的机器码,因此编译生成的可执行程序通常无法移植到其他平台上运行;如果需要移植,则必须将源代码复制到特定的平台上,针对特定的平台进行修改,至少也需要采用特定平台上的编译器重新编译。
比如我们现在的C、C++、Objective-C、Pasca等高级语言都属于编译型语言。
二,解释型语言
解释型语言是指使用专门的解释器对源程序进行逐行解释成特定平台的机器码并立即执行的语言。解释型语言通常不会进行整体的编译和链接处理,解释型语言相当于把编译型语言中的编译和解释过程混合在一起同时完成。
可以这样认为:每次执行解释型语言的程序都需要进行一次编译,因此解释型语言的程序运行效率通常较低,而且它不能脱离解释器独立运行。
但解释性语言有一个优势:跨平台比较容易,只需提供特定平台的解释器即可,每个特定平台上的解释器负责将源程序解释成特定平台的机器指令即可。解释性语言可以方便的实现源程序的移植,但这是以牺牲程序执行效率为代价的。
三:java说的是解释型语言,但是就如上面所讲,java既有编译的成分也有解释的成分,java的跨平台靠的是他的jvm即java虚拟机