工学

问答题什么是语法制导翻译?中间代码通常有哪几种主要形式?

题目
问答题
什么是语法制导翻译?中间代码通常有哪几种主要形式?
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

在编译过程中,为什么要生成中间代码?常见的中间代码形式有哪几种?


参考答案:中间代码生成实际上是根据语法分析所指示的语法范畴进一步确定语句的语义,并生成相应的中间代码序列。常见的中间代码形式有三元式、四元式和逆波兰表示式。

第2题:

将高级语言程序翻译为机器语言程序的过程中,常引入中间代码,其好处是( )。

A.有利于进行反编译处理
B.有利于进行与机器无关的优化处理
C.尽早发现语法错误
D.可以简化语法和语义分析

答案:B
解析:
本题考查程序语言基础知识。"中间代码"是一种简单且含义明确的记号系统,可以有若干种形式,它们的共同特征是与具体的机器无关,此时所作的优化一般建立在对程序的控制流和数据流分析的基础之上,与具体的机器无关。

第3题:

自下而上语法制导翻译法的特点是语法分析栈与语义分析栈不需同步操作。()


参考答案:错误

第4题:

语法制导翻译只适用于自下而上的语法分析方法。


正确答案:错误

第5题:

提供语法形式的手段主要有哪几种?
各种基本语法结构的语法意义必须通过一定的语法形式才能体现出来。
主要手段有选词,词序,虚词,词形变化。

第6题:

编译程序一般采用(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;}

第7题:

语法制导翻译是一种( )方法。

A.动态语义分析
B.中间代码优化
C.静态语义分析
D.目标代码优化

答案:C
解析:
程序设计语言的语义分为静态语义和动态语义,其中静态语义分析方法是语法制导翻译,其基本思想是将语言结构的语义以属性的形式赋予代表此结构的文法符号,而属性的计算以语义规则的形式赋予文法的产生式。

第8题:

一个BASIC解释程序和编译程序的不同在于,解释程序由语法制导翻译成目标代码并立即执行之,而编译程序需产生中间代码及优化。()

此题为判断题(对,错)。


正确答案:错误

第9题:

什么是语法制导翻译?中间代码通常有哪几种主要形式?


正确答案: 由一个源语言、一个目标语言和一组翻译规则组成,遮住规则可将任何源语言符号串翻译成对应的目标语言。
主要形式:三元式、四元式、逆波兰式。

第10题:

以下中间代码的表示形式中,()更便于优化。

  • A、三元式
  • B、四元式
  • C、抽象语法树
  • D、后缀式

正确答案:B