产生式E®E1+E2的语义动作中关于E.type的语义规则可定义为:下面的说法正确的是()。
A.整型表达式和整型表达式做加法,结果是整型B.整型表达式和整型表达式做加法,结果是实型C.整型表达式和实型表达式做加法,结果是整型D.整型表达式和实型表达式做加法,结果是实型
多项选择题关于数组元素引用的翻译,下列说法正确的是()。
A.编译程序在翻译数组元素引用时,会在生成的代码中插入计算数组元素地址的代码B.编译程序产生数组元素地址计算代码,其中的不变部分与数组的定义相关C.编译程序产生数组元素地址计算代码,其中的可变部分与数组的定义、数组元素引用的下标都相关D.数组元素引用的翻译可以从左到右一遍扫描生成地址计算代码
多项选择题关于下面的赋值语句生成三地址代码的属性文法,说法正确的是()。
A.E .place表示存放E值的单元的名字(地址)B.E .code表示对E求值的三地址语句序列C.S .code代表赋值语句S的三地址代码D.上述属性文法不是S-属性文法
单项选择题某语言的do-while语句的语法形式为S ®do S(1)While E其语义解释为:该语句的一遍扫描翻译模式如下,其中空白处应该填写()。
A.backpatch(E .truelist,nextquad )B.backpatch(E .falselist,nextquad )C.backpatch(E .truelist,U .quad)D.backpatch(E .falselist,U .quad)
单项选择题假设与下图所示的if-then-else的语义对应的属性文法中与产生式S→if E then S1else S2对应的语义规则如下,其中空白处应该填写()。
A.newlabelB.E .trueC.E .falseD.S .next
单项选择题将语句if (A< 0)then while (C>0)do C:=C-D翻译成下面的四元式序列,其中空白处应该填写()。
A.(j,-,-,100)B.(j,-,-,102)C.(j,-,-,104)D.(j,-,-,107)