在介绍一门语言时,总会提到编译型、解释型、脚本、动态这些特性,其实了解了语言的翻译过程也就可以给它归类了。
计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。
编译型语言(Compiling Languages):程序在执行之前,需要先编译成机器语言文件,比如exe,运行的时候不需要再去翻译,直接运行就行,所以执行效率比较高。比如C/C++、vb、Pascal等
解释型语言(Interpreted Languages):也称脚本语言,程序在执行的时候才翻译成机器语言,每执行一次就要翻译一次,因此执行效率比较低。由于是在执行时才翻译,可以动态修改程序的属性和方法,所以也可称为动态语言。由于在执行时才翻译,可以调用不同的平台的解释器进行翻译,做到一份代码跨平台应用。比如Perl、Ruby、Python等
Java比较特殊,Java程序也需要编译,但是没有直接编译成机器语言,而是编译成字节码,然后用解释方式执行字节码。