编译型语言:编译是指在应用源程序执行之前,将程序源代码“翻译”成目标代码(机器语言),其目标程序可以脱离其语言环境独立执行,使用方便效率高。但应用程序一旦需要修改,就必须下修改源代码,再重新编译生成新的目标文件(*.obj)才能执行,只有目标文件而没有源代码,修改很不方便。C、C++就是编译型语言。
解释型语言:
解释型语言的实现中,翻译器并不产生目标机器代码,而是产生易于执行的中间代码。用解释型语言编写的程序是由另一个可以理解中间代码的解释程序执行的。与编译程序不同,解释程序的任务是逐一将源程序的语言解释成可执行的机器指令,不需要将源程序翻译成目标代码后再执行。解释型语句每执行一次就翻译一次,因而效率低下。一般的动态语言都是解释型的,例如Tcl、VBScript、JavaScript等。
需要注意的是,Java是一类特殊的编程语言,Java程序也需要编译,但是却没有直接编译为机器语言,而是编译为字节码,然后在Java虚拟机上以解释方式执行字节码。