编译器和解释器是两种基本高级语言处理程序。编译器对高级语言源程序处理过程可以划分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等阶段,其中,(请作答此空)并不是每个编译器都是必需。与编译器相比,解释器 ( ) 。
- A.词法分析和语法分析
- B.语义分析和中间代码生成
- C.中间代码生成和代码优化
- D.代码优化和目标代码生成
正确答案及解析
正确答案
C
解析
本题考查程序语言基础知识。解释程序也称为解释器,它可以直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再加以执行;而编译程序(编译器)则首先将源程序翻译成目标语言程序,然后在计算机上运行目标程序。这两种语言处理程序根本区别是:在编译方式下,机器上运行是与源程序等价目标程序,源程序和编译程序都不再参与目标程序执行过程;而在解释方式下,解释程序和源程序(或其某种等价表示)要参与到程序运行过程中,运行程序控制权在解释程序。解释器翻译源程序时不产生独立目标程序,而编译器则需将源程序翻译成独立目标程序。分阶段编译器工作过程如下图所示。其中,中间代码生成和代码优化不是必需。