编程语言可能是编译的或是解释的,也有可能是通过虚拟机执行的。许多语言都将“性能优化”作为一个特性,但是严格来讲,这个特性是执行该语言的特性,而不是语言的本身。比如,Java HotSpot虚拟机软件就是用所包含的JIT编译器来动态提高性能的。
编译语言:编译在运行之前将程序生成机器指令,保存在二进制可执行文件里。这些文件可以在任何时间运行,无需再编译。编译语言C/C++,还有些语言既有解释器也有编译器。编译过的代码总体来说是高性能的,在被CPU执行之前不需要进一步转换。
解释语言:解释语言程序的执行时将语言在运行时翻译成行为,这一过程会增加执行的开销。解释语言并不期待能表现出很高的性能。而是用于其他因素更重要的情况下,诸如易于编程和调试。shell脚本就是解释语言的一个例子。
虚拟机:或者称为进程虚拟机是模拟计算机的软件。比如java和erlang,都是用虚拟机执行,提供了平台独立的编程环境。应用程序先编译成虚拟机指令集,再由虚拟机执行。这样编译的对象具有了可移植性,只要有虚拟机就能在目标平台上运行这些程序。