编译器是一种计算机程序,它读取用高级语言(如 FORTRAN、PL/I、COBOL 等)编写的程序。它可以将其翻译成用包括机器语言在内的低级语言编写的相同程序。编译器还会找出程序编译过程中遇到的各种错误。
编译器使用不同的阶段将高级语言转换为低级语言。客户输入的字符流经过多个编译阶段,最终提供目标语言。
编译器有多种优点,如下所示 -
编译器在一次运行中翻译程序。
它消耗的时间更少。
CPU利用率更高。
可以同时检查语法和语义错误。
它很容易被 C、C++、JAVA 等许多高级语言支持。
解释器是直接执行编程代码而不是将其翻译成另一种格式的程序。它将编程语言语句一一翻译和执行。解释器花费更少的时间来解释由编译器区分的源程序。
口译员有以下各种优点 -
解释器逐行翻译程序。
解释器的尺寸更小。
它是灵活的。
错误定位更容易。
解释器促进了计算机编程语言结构的实现。
让我们看看编译器和解释器之间的比较。
编译器 | 口译员 |
---|---|
A compiler translates the entire source code in a single run. | 解释器逐行翻译整个源代码。 |
It consumes less time i.e., it is faster than an interpreter. | 它比编译器消耗更多的时间,即它比编译器慢。 |
It is more efficient. | 它的效率较低。 |
CPU utilization is more. | 与编译器相比,CPU 利用率较低。 |
Both syntactic and semantic errors can be checked simultaneously. | 只检查语法错误。 |
The compiler is larger. | 解释器通常比编译器小。 |
It is not flexible. | 它是灵活的。 |
The localization of errors is difficult. | 错误的定位比编译器更容易。 |
A presence of an error can cause the whole program to be re-organized. | 错误的存在只会导致程序的一部分被重新组织。 |
The compiler is used by the language such as C, C++. | Java 等语言使用解释器。 |