早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->
编译程序一般采用(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;}
解析:目前,编译程序一般采用语法制导翻译技术进行语义分析和生成中间代码,概括说明如下所述。根据语义分析和生成中间代码的需要,给每个文法符号设置若干个属性,用以表示它的语义信息。例如,变量可设置类型、层次、内存单元地址等;表达式可设置类型、中间代码等。然后对语言的文法进行扩充,对每条产生式编写一个语义子程序(或函数),用以计算有关文法符号的属性值,即在语法分析过程中使用这条产生式进行语法分析时,调用它的语义子程序完成相应的语义分析和翻译任务。随着语法分析的步步进展,当一条产生式获得匹配(自顶向下分析)或用于归约(自底向上分析)时,就执行这条产生式所对应的语义子程序进行翻译,这种方法称作语法制导翻译。它既适用于自顶向下分析,又适用于自底向上分析。例如,若仅把赋值语句翻译成四元式形式的中间代码,下面给出了每个产生式及相应的翻译子程序。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)技术进...的网友还看了以下:
英语翻译准确翻译,勿用翻译软件代替, 其他 2020-05-14 …
求英文翻译求“尽管没有人陪伴,我也会独自走完这条路”的英文翻译别用翻译机器翻译.谢谢 英语 2020-05-15 …
英语翻译不用翻译这个成语,请帮忙翻译“随心”这个意思就行,最好是单词. 英语 2020-06-20 …
英语翻译我需要把“上上蚕纺”翻译成英语,要精准的,要读的上的.不要片面的翻译,请用翻译工具翻译的不 英语 2020-06-21 …
华丽的背后不为人知的丑陋笑容的背后不为人知的承受.英文翻译RT求.华丽的背后不为人知的丑陋笑容的背 英语 2020-07-10 …
英语句子翻译勿用翻译器Doyourealizethateverytimeyoutakeastep, 英语 2020-07-22 …
英语翻译别用翻译网!翻译得什么都不是.一.翻译向我的朋友问好(英文)二.连词成句(注意标点)1.is 英语 2020-11-04 …
英语翻译翻译“他昨天从我的自行车上掉了下来,伤到了他的三颗牙,幸好医生及时赶到,他才能准时参加会议” 英语 2020-11-04 …
求翻译急!用翻译软件的就算了随着科学技术的进步,网络视频监控技术已被广泛地应用到诸多行业中,在工程领 英语 2020-11-13 …
英语翻译要用翻译器翻译的翻译成英文有时候,我们会因为一次失败而放弃原来的目标,对自己失去信心,认为自 英语 2020-11-23 …