(1) (2) (3) (4) (5) (6) 间接三元式 (0) (1) (2) (3) (4) (5) Op + uminus + * + + - (0) c (1) a (4) (3) d (2) b c (5) ag1 a (0) c (1) (0) (3) ag2 b d (2) d (4) uminus + * + - 间接代码 (0),(1),(2),(3),(0),(4),(5) 四元式序列 (0) (1) (2) (3) (4) op + uminus + + * ag1 a T1 c T1 T3 ag2 b d c T4 result T1 T2 T3 T4 T5 (5) 4
- T5 T4 T6 产生三地址代码 6
A or (B and not(C or D)): 100:(jnz,A,-,0) 101:(j,-,-,102) 102:(jnz,B,-,104) 103:(j,-,-,0) 104:(jnz,C,-,0) 105:(j,-,-,106) 106:(jnz,D,-,0) 107:(j,-,-,0) 7
100:(j<,A,C,102) 101:(j,-,-,114) 102:(j<,B,D,104) 103:(j,-,-,114)
104:(j=,A,‘1’,106) 105:(j,-,-,109)
106:(+,C,‘1’,T1) 107:(:=,T1,-,C) 108:(j,-,-,100) 109:(j≤,A,D,111) 110:(j,-,-,100)
111:(+,A,‘2’,T2) 112:(:=,T2,-,A) 113:(j,-,-,109) 114:
第十章 代码优化 一 程序流图
Read CA:=0B:=0L1: A:=A+BIf B>=C GOTO L2B:=B+1GOTO L1L2:= write Ahalt 第二题 程序流图
Read A,BF:=1C:=A*AD:=B*BIf C
第四题 优化
I:=1Read j,KL A:=K*IB:=J*IC:=A*BWrite CI:=I+1If I<100 goto LhaltI:=1Read J,KA:=K*IB:=J*IT1:=100KL C:=A*BWrite CA:=A+KB:=B+JIf A