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.newlabel
B.E .true
C.E .false
D.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)
将布尔表达式
(A>B)and (B< C)or (E < F)
翻译成下面的四元式序列,其中空白处应该填写()。
A.(j,-,-,102)
B.(j,-,-,104)
C.(j,-,-,106)
D.(j,-,-,112)
将赋值语句A:=B*(-C)+D*(E-F)翻译成下面的三地址代码,其中空白处应该填写()。
A.T3:=T2+D
B.T3:=D *E
C.T3:=E -F
D.T3:=F –E
A.
B.
C.
D.
对于翻译模式
编写R的翻译子程序如下:
其中AST_node为抽象语法树(AST)结点类型。关于该子程序实现,下列说法正确的是()。
A.函数R的返回结果是指向抽象语法树结点的指针,指向翻译得到的抽象语法树的根结点
B.R的继承属性i实现为函数的形式参数in
C.如果R与e匹配,则该函数返回null值
D.R的综合属性s实现为函数的返回值
给定属性文法G(P),语法制导定义如下:
假设语法单位P对应程序,D对应声明语句,id对应标识符,T对应类型,按照该属性文法的定义,下列说法中正确的是()。
A.该文法生成的程序只能包含有一个声明语句
B.在该文法生成的程序中,可以在声明语句中声明多个变量名
C.D .i表示D对应的声明语句的数目
D.D .i表示D对应的声明语句中的标识符的数目
A.
B.
C.
D.
最新试题
在递归子程序方法中,若文法存在左递归,则会使分析过程产生()
编译程序使用()区别名字的作用域。
一个字符属于FOLLOW(S),这个字符的含义是()
如果一个文法是二义文法,必然有()的现象存在。
在编译中产生语法树是为了()
在循环内可以实行的优化有()
编译过程中将源代码翻译成中间代码,具有很多优点,其中()不是中间代码的优点。
假设/的优先级高于-,则采用右结合规则时,a-b/c-d可解释为()
利用DAG进行局部优化,不能实现()
对于某文法规范句型aBcDef,如果句柄是Bc,下面哪些字符串是活前缀?()