单选题 高级语言程序编译的过程可以分成干个阶段,其中把单词符号分解成句子属于______阶段的工作。
  • A.词法分析
  • B.语法分析
  • C.语义分析
  • D.代码生成
【正确答案】 B
【答案解析】[解析] 高级语言源程序的编译过程通常分为词法分析、语法分析、语义分析中间代码生成、优化、目标代码生成5个阶段。 词法分析:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词(也称单词符号,或简称符号)在词法分析阶段工作所依循的是语言的词法规则。描述词法规则的有效工具是正规式和有限自动机。 语法分析:在词法分析的基础上,根据语言的语法规则,把单词符号分解成各类语法单位(语法范畴),如“短语”、“句子”、“子句”、“程序段”等。 语义分析与中间代码生成:这一阶段通常包括两方面的工作首先对各种语法范畴进行静态语义检查,如果正确则进行另一方面的工作,即进行中间代码的翻译。 通常使用属性文法描述语义规则。 所谓“中间代码”是一种含义明确,便于处理的记号系统。 中间代码除四元式外,还有三元式、间接三元式、逆波兰记号、树形表示等。 优化:优化的任务在于对前段产生的中间代码进行加工,以期在最后阶段产生更为高效(省时间和空间)的代码。优化所依循的原则是程序的等价变换规则,其方法有公共子表达式的提取、循环优化、删除无用代码等。 目标代码生成:把中间代码(或经优化处理后)变换成特定机器上的低级语言代码。它有赖于硬件系统结构和机器指令含义。