赋值语句的翻译
简单算数表达式及赋值语句
- 非终结符号S有综合属性
S.code
,其代表赋值语句S的三地址代码 - 非终结符号\(E\)有如下两个属性:
E.place
:存放E值的名字E.code
:E求值的三地址语句序列- 函数
newtemp
:返回一个不同临时变量名字,如\(T_1,T_2,\cdots\)
数组元素的引用
- 计算数组元素的地址:
- 递归计算
- 属性及函数设计:
- S属性定义翻译方案:
- 举例:赋值语句\(x := A[y,z]\)的分析树:
S.code
,其代表赋值语句S的三地址代码E.place
:存放E值的名字E.code
:E求值的三地址语句序列newtemp
:返回一个不同临时变量名字,如\(T_1,T_2,\cdots\)