网站推广.NET

网站推广.NET

解释器和编译器有什么区别?

来源:互联网

解释器:直接执行用编程语言编写的指令的程序。

编译器:把源代码转换成(翻译)低级语言的程序。

编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;

解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的。

编译器生成一个独立的程序,而解释的程序总是需要解释器来运行。

如果你有一个编译的程序,你不需要安装其他任何东西就可以运行起来,这使得分发十分简单。 另一方面,可执行文件在一个特定平台上运行:不同的操作系统和不同的处理器需要不同的编译版本。

如果要解释程序,可以将不同平台上的相同副本分发给用户。 然而,他们需要一个在其特定平台上运行的解释器。所以可以分发源代码或中间产物。

使用解释型编程语言更容易制作跨平台程序。

编译的程序比解释的程序执行起来要快得多,但这只是冰山一角。 简单来讲,就执行而言,确实是编译后执行的编译型程序执行的快些,但是编译型程序的编译加执行的时间比解释性语言解释执行的时间多。

编译器确实产生更快的程序,这是因为它必须把每个语句分析一次,而解释器必须每次都分析一次,此外,编译器还可以优化其生成的可执行代码。 这既是因为它确切地知道它将在哪里运行,并且需要时间来优化代码。

高级语言程序要被机器执行只有用解释器来解释执行