编译是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快; 翻译与执行是分开的;比较解释性语言,运行速度快。
优点: 可脱离开发环境,特定的平台上独立运行,运行效率较高。
缺点:无法移植;需要移植,要源代码重新编译。
代表语言:C 、 C++
解释则是只在执行程序时,才一条一条的解释成计算机可以识别的机器语言给计算机来执行,
翻译与执行一次性完成,不生成可存储的目标代码。所以运行速度是不如编译后的程序运行的快的.
优点:跨平台较容易,可移植性好,是以牺牲程序执行效率为代价。
缺点:效率较低,不能脱离解释器独立运行
代表语言:ruby python
关于Java语言:
Java语言比较特殊,由于Java语言编写的程序需要经过编译,但这个编译并不会生成特定平台的机器码,而是生成一种与平台无关的字节码(*.class),这个字节码不可执行。必须使用java解释器来解释执行。
所以java语言既是编译型语言,也是解释型语言。