问题 单项选择题

编译器和解释器是两种高级语言处理程序,与编译器相比, (1) 。编译器对高级语言源程序的处理过程可以划分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等几个阶段:其中,代码优化和 (2) 并不是每种编译器都必需的。词法分析的作用是识别源程序中的 (3) ;语法分析中的预测分析法是 (4) 的一种语法分析方法:编译器在 (5) 阶段进行表达式的类型检查及类型转换。

(5)

A.词法分析

B.语法分析

C.语义分析

D.目标代码生成

答案

参考答案:C

解析: 编译器和解释器是两种高级语言处理程序,编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样,运行时,计算机可以直接以机器语言来运行此程序,速度很快,编译器不参与运行控制。解释器则是只在执行程序时,才一条一条的解释成机器语言让计算机执行,所以运行速度是不如编译后的程序运行得快,解释器参与了运行控制。本题第1空的正确答案为选项B。 编译过程涉及如下阶段: ①词法分析阶段。这个阶段中,对源程序从前到后进行扫描,从中识别出一个个“单词”符号。本题第3空的正确答案为选项B。 ②语法分析阶段。在词法分析的基础上,根据语言的语法规则,将单词符号序列分解为各类语法单位。语法分析中,有自顶向下分析和自底向上分析。预测分析法是自顶向下的语法分析方法。第4空的正确答案为选项B。 ③语义分析阶段。主要检查源程序中是否存在语义错误,并收集类型信息,供后面的代码生成阶段使用。只有语法和语义都正确的源程序,才能翻译为正确的目标代码。语法分析阶段的一个主要任务是进行类型分析和检查。编译器在这个阶段进行表达式的类型检查及类型转换。第5空的正确答案为选项C。 ④中间代码生成阶段。在这个阶段中,根据语义分析的输出,生成中间代码。 ⑤代码优化阶段。因为中间代码在时间和空间上都有很大的浪费,代码优化阶段的任务是,生成高效的目标代码。 ⑥目标代码生成阶段。把中间代码变换为特定机器上的绝对指令代码、可重定位的指令代码和汇编指令代码。 其中,代码优化和中间代码生成阶段,并不是每个编译器都必须的。第2空的正确答案为选项C。

单项选择题
单项选择题