语言处理器–
汇编语言是与机器相关的,但用于表示指令的助记符不能被机器直接理解,而高级语言则与机器无关。计算机可以用机器代码(即0和1的形式)理解指令。直接用机器代码编写计算机程序是一项繁琐的任务。这些程序主要用Java,C++, Python等高级语言编写,被称为源代码。这些源代码无法由计算机直接执行,必须将其转换为机器语言才能执行。因此,使用特殊的翻译器系统软件将以高级语言编写的程序翻译为机器代码,称为语言处理器,然后将该程序翻译为机器代码(目标程序/目标代码)。
语言处理器可以是以下三种类型中的任何一种:
- 编译器–
一口气读取全部以高级语言编写的完整源程序并将其翻译成机器语言的等效程序的语言处理器称为编译器。
示例: C,C++,C#, Java在编译器中,如果没有错误,则源代码将成功转换为目标代码。当源代码中有任何错误时,编译器会在编译结束时用行号指定错误。必须清除这些错误,然后编译器才能再次成功重新编译源代码。
- 汇编器–
汇编程序用于将以汇编语言编写的程序转换为机器代码。源程序是包含汇编语言指令的汇编程序的输入。汇编器生成的输出是计算机可以理解的目标代码或机器代码。 - 口译员–
将源程序的单条语句转换为机器代码是由语言处理器完成的,并在继续进行下一行之前立即执行它,这称为解释器。如果语句中有错误,解释器将在该语句中终止其翻译过程并显示错误消息。解释器仅在消除错误后才继续执行下一行。解释器直接执行以编程或脚本语言编写的指令,而无需事先将其转换为目标代码或机器代码。
示例: Perl, Python和Matlab。
编译器和解释器之间的区别–
Compiler | Interpreter |
---|---|
A compiler is a program which coverts the entire source code of a programming language into executable machine code for a CPU. | interpreter takes a source program and runs it line by line, translating each line as it comes to it. |
Compiler takes large amount of time to analyze the entire source code but the overall execution time of the program is comparatively faster. | Interpreter takes less amount of time to analyze the source code but the overall execution time of the program is slower. |
Compiler generates the error message only after scanning the whole program, so debugging is comparatively hard as the error can be present any where in the program. | Its Debugging is easier as it continues translating the program until the error is met |
Generates intermediate object code. | No intermediate object code is generated. |
Examples: C, C++, Java | Examples: Python, Perl |