问题
单项选择题
表达式中括号不匹配错误可在编译程序______阶段检查出来。
A.词法分析
B.语法分析
C.语义分析
D.代码优化
答案
参考答案:B
解析:
编译程序是要把高级语言书写的源程序翻译成与之等价的目标程序,其工作过程可分为6个阶段:
词法分析:对源程序从前到后逐个字符进行扫描,从中识别出一个个“单词”符号。
语法分析:在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单元。通过语法分析,确定整个输入串是否构成一个语法上正确的程序。
语义分析:主要检查源程序是否存在语义错误,进行类型分析和检查。数据类型一般包括类型的载体及其上的运算两方面的内容。只有语法和语义都正确的源程序才能翻译成正确的目标代码。
中间代码生成:根据语义分析的输出生成中间代码,这是一种简单且含义明确的记号系统,与具体的机器无关。
代码优化:生成的中间代码往往在时间和空间上有很大的浪费,对其优化,可生成高效的目标代码。优化过程可在中间代码生成阶段进行,也可以在目标代码生成阶段进行。
目标代码生成:把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编代码。