两者的区别如下:
解释方式:程序运行时,取一条指令,将其转化为机器指令,再执行这条机器指令。这种方式每次运行程序时都要重新翻译整个程序,效率较低,执行速度慢,如QB,不过现在很少再用这种低效的方式的设计语言了。
编译方式:程序运行时之前,将程序的所有代码编译为机器代码,再运行这个程序。然后每次执行的时候就可以直接执行这个翻译好的二进制文件了,这样的程序只需要翻译一次,效率明显要高很多,现在的大多数语言都是这种方式,网页中的asp.net 采用的也是这种方式。
两者互有优劣:
编译是指将源语言转化为目标计算机的可执行二进制代码,如将C、C++编译为Windows上的可执行二进制文件,这种编译一旦完成,那么就只能在特定平台上运行了,由于程序执行的是编译好的二进制文件,因此速度比较快(相对下面的解释)。
解释是指程序不做任何变动,以源代码的形式提供在目标计算机上执行,但是源代码计算机是不识别的,因此要边解释边执行,解释一条执行一条,这样的话就比编译要慢了。由于程序要在运行时动态解释语言,因此往往需要特定的平台,例如Java需要目标机器上安装JRE,但是这种方式也有一个好处就是可以跨平台,源代码不变,在运行时根据不同的平台,解释成不同的二进制执行。