? 三元式 运算结果用三元式编号表示 b*c (*,b,c)
? 四元式 运算结果用临时变量表示 b*c (*,b,c,t)
a:=b*c+b*d的三元式表示 a:=b*c+b*d的四元式表示
注意最后一步写法 四元式直观写法:
t1:=b*c t2:=b*d t3:=t1+t2 a:=t3
中间代码优化处理时,四元式比三元式方便的多
28. 终结符只有综合属性,由词法程序提供;非终结符可有综合也可有继承属性,但文法开
始符号无继承属性。
29. 按优化所涉及的程序范围可分为三种级别:局部优化、循环优化、全局优化。
局部优化指在只有一个入口一个出口的基本块内进行的优化。 30. 判定入口语句的规则:
(a)代码序列的第1个语句。
(b)条件或无条件转移语句的转移目标语句。If… goto Goto (c)紧跟在无条件转移语句或条件转移语句后面的语句。 例:
B1 -> (1) read x (2) read y B2 -> (3) r:=x mod y (4) if r=0 goto (8) B3 -> (5) x:=y (6) y:=r (7) goto (3) B4 -> (8) write y (9) halt
基本块i和基本块j满足如下条件之一,则从i引一条有向边到j 。
1.j紧跟在i之后,且i的出口语句不是goto或停语句,可以是if goto S语句 如B2到B3 2.i的出口语句是goto S语句或“[if]goto S”语句,而S是j的入口语句, i是j的前驱结点。