资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
第八章习题答案 2、请将算术表达式翻-(a+b)*(c+d)+(a+b+c)翻译为: (1) 四元式 (2) 三元式 (3) 间接三元式 答: (1) 四元式 op arg1 arg2 result (0) + a b t1 (1) uminus t1 t2 (2) + c d t3 (3) * t2 t3 t4 (4) + a b t5 (5) + t5 c t6 (6) + t4 t6 t7 (2) 三元式 op arg1 arg2 (0) + a b (1) uminus (0) (2) + c d (3) * (1) (2) (4) + a b (5) + (4) c (6) + (3) (5) (3) 间接三元式 间接码表: 语句 0 10 1 11 2 12 3 13 4 14 5 15 6 16 三元式: op arg1 arg2 (10) + a b (11) uminus (10) (12) + C D (13) * (11) (12) (14) + A B (15) + (14) C (16) + (13) (15) 4、修改图 8.5 中计算声明语句中的名字的类型及相对对峙的翻译方案,以允许在一个声明 中可以同时声明多个变量名。 答: 翻译方案如下: P- offset:= 0 D D- D;D D-L L-id,L1 L.type = L1.type; L.width = L1.width; enter(id,name,L.type,offset; Offset:= offset +L.width L-:T L.type = T.type; L.width = T.width; T-integer T.type = integer; T.width:= 4 T-real T.type= real; T.width:= 8 T- arraynum of T1 T.type:= array(num.val, T1.type); T.width:= num.val X T1.width T-T1 T.type:=pointer(T1.type); T.width : = 4 7、利用 8.11 的翻译方案,将下面的赋值语句翻译成三地址代码: Ai,j = Bi,j + CAk,l+Di+j 答: 令: 域宽为 w A 的维数为:da1,da2, 不变部分为 na, B 的维数为 db1,db2, 不变部分 nb C 的维数为 dc,不变部分 nc D 的维数为 dd,不变部分 nd, t1 := i*db1 t1:= t1+j t2:= B-nb t3:=w*t1 t4:=t2t3 xb = t4; t1 := k*da1 t1:= t1+l t2:= A-na t3:=w*t1 t4:=t2t3 xa = t4; t1:=xa; t2:=C-nc; t3:=w*t1 t4:=t2t3 xca:=t4 t1:=i+j; t2:=D-nd; t3:=w*t1; t4:=t2t3; xd=t4; t5:=xb+xca; t6:=t5+xd; t1 := i*da1 t1:= t1+j t2:= A-na t3:=w*t1 t2t3:=t6
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号