4.4表达式及赋值语句的翻译概要.ppt

4.4表达式及赋值语句的翻译概要

4.4 表达式及赋值语句的翻译 4.4.1 简单算术表达式和赋值语句的翻译 4.4.2 布尔表达式的翻译 4.4.1 简单算术表达式和赋值语句的翻译 简单变量:指普通变量和常数,但不含数组元素及结构引用等复合型数据结构; 简单算术表达式:一种仅含简单变量的算术表达式。 简单算术表达式的计值顺序与四元式出现的顺序相同,因此容易将其翻译成四元式形式,这些翻译方法稍加修改也可用于产生三元式或间接三元式。 考虑以下文法G[A]: A→i=E E→E+E∣E*E∣?E∣(E)∣i 在此,非终结符A代表“赋值语句”。 文法G[A]虽然是一个二义文法,但通过确定运算符的结合性及规定运算符的优先级就可避免二义性的发生。 为了实现由表达式到四元式的翻译,需要给文法加上语义子程序,以便在进行归约的同时执行对应的语义子程序。 语义子程序所涉及的语义变量、语义过程及函数说明: (1) 语义变量E.place:即用E.place表示存放E值的变量名在符号表中的入口地址或临时变量名的整数码。 (2) 语义函数newtemp( ):即每次调用newtemp(?)时都将回送一个代表新临时变量的整数码;临时变量名按产生的顺序可设为T1、T2、……。 (3) 语义过程emit(op,arg1,arg2,result):emit的功能是产生一个四元式并填入四元式表中。 (4) 语义函数lookup(i.name)

文档评论(0)

1亿VIP精品文档

相关文档