- 0
- 0
- 约 33页
- 2016-12-29 发布于北京
- 举报
编译原理(第三版) 陈火旺等编著 (2012年9月-12月) 主讲:朱世松 计算机学院 三地址语句的种类 x:=y op z x:=op y x:=y goto L if x relop y goto L或if a goto L param x和call p,n,以及返回语句return y x:=y[i]及x[i]:=y的索引赋值 x:=y, x:=*y和*x:=y的地址和指针赋值 生成三地址代码时,临时变量的名字对应抽象语法树的内部结点 id:=E 对表达式E求值并置于变量T中值 id.place:=T 从赋值语句生成三地址代码的S-属性文法 非终结符号S有综合属性S.code,它代表赋值语句S的三地址代码。 非终结符号E有如下两个属性: E.place表示存放E值的名字。 E.code表示对E求值的三地址语句序列。 函数newtemp的功能是,每次调用它时,将返回一个不同临时变量名字,如T1,T2,…。 为赋值语句生成三地址代码的S-属性文法定义 产生式 语义规则 S→id:=E S.code:=E.code || gen(id.place ‘:=’ E.place) E→E1+E2 E.place:=newtemp; E.code:=E1.code || E2.code || ge
原创力文档

文档评论(0)