早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

编译程序一般采用(29)技术进行语义分析和生成中间代码。A.数据控制翻译B.流程控制翻译C.语法制导

题目

编译程序一般采用(29)技术进行语义分析和生成中间代码。

A.数据控制翻译

B.流程控制翻译

C.语法制导翻译

D.面向对象的翻译

参考答案
正确答案:C
解析:目前,编译程序一般采用语法制导翻译技术进行语义分析和生成中间代码,概括说明如下所述。根据语义分析和生成中间代码的需要,给每个文法符号设置若干个属性,用以表示它的语义信息。例如,变量可设置类型、层次、内存单元地址等;表达式可设置类型、中间代码等。然后对语言的文法进行扩充,对每条产生式编写一个语义子程序(或函数),用以计算有关文法符号的属性值,即在语法分析过程中使用这条产生式进行语法分析时,调用它的语义子程序完成相应的语义分析和翻译任务。随着语法分析的步步进展,当一条产生式获得匹配(自顶向下分析)或用于归约(自底向上分析)时,就执行这条产生式所对应的语义子程序进行翻译,这种方法称作语法制导翻译。它既适用于自顶向下分析,又适用于自底向上分析。例如,若仅把赋值语句翻译成四元式形式的中间代码,下面给出了每个产生式及相应的翻译子程序。S→id=E{p=Entry(id.name);if(p!=NULL)GEN(:=,E.place,-,p);elseerror;}E→E1+E2{E.place=newtemp;GEN(+,E1.place,E2.place,E.place);}E→E1*+E2{E.place=newtemp;GEN(*,E1.place,E2.place,E.place);}E→id{p=Entry(id.name);if(p!=NULL)E.place=p;elseerror;}
看了编译程序一般采用(29)技术进...的网友还看了以下: