编译原理(龙书):第六章部分题目参考答案

编译原理(龙书):第六章部分题目参考答案,第1张

编译原理(龙书):第六章部分题目参考答案

目录

6.1.16.1.26.2.1 (1) (3)6.3.16.4.16.4.26.4.36.4.66.5.16.6.1 (2)6.6.26.6.46.7.16.7.26.7.3

6.1.1


6.1.2




6.2.1 (1) (3)


6.3.1


答:首先需要弄清楚record的SDT,因此需要先学习教材P242。


因此,每个标识符的类型、相对地址如下表所示:

6.4.1



6.4.2



6.4.3



(1) x = a[i] + b[j] 注释语法树:


三地址代码为:
t1 = i * awidth
t2 = a[t1]
t3 = j * btwidth
t4 = b[t3]
t5 = t2 + t4
x = t5

(2) x = a[i][j] + b[i][j] 注释语法树:


三地址代码为:
t1 = i * aiwidth
t2 = j * ajwidth
t3 = t1 + t2
t4 = a[t3]
t5 = i * biwidth
t6 = j * bjwidth
t7 = t5 + t6
t8 = b[t7]
t9 = t4 + t8
x = t9

(3) x=a[b[i][j]][c[k]] 注释语法树:

三地址代码为:
t1 = i * biwidth
t2 = j * bjwidth
t3 = t1 + t2
t4 = b[t3]
t5 = k * ciwidth
t6 = c[t5]
t7 = t4 * aiwidth
t8 = t6 * ajwidth
t9 = t7 + t8
t10 = a[t9]
x = t10

6.4.6


答:元素A[i][j]的位置为:((i-1) * 20 + (j-1)) * 4
(1) i=4, j=5
((4-1) * 20 + (5-1)) * 4=256
(2) i=10, j=8
((10-1) * 20 + (8-1)) * 4=748
(3) i=3, j=17
((3-1) * 20 + (17-1)) * 4=224

6.5.1



答:
(1)
t1 = (int) s
t2 = (int) c
t3 = t1 + t2
(2)
t1 = (int) s
t2 = (int) c
i = t1 + t2
(3)
t1 = (int) s
t2 = (int) c
t3 = t1 + t2
t4 = (int) t
t5 = (int)d
t6 = t4 + t5
t7 = t3 * t6
x = (float) t7

6.6.1 (2)



6.6.2




6.6.4

6.7.1





6.7.2



答:
(1) i1
(2) i7
(3) i7
(4) i3
(5) i3

6.7.3



答:
(1) S4.next=S3.next
(2) S5.next=S2.next
(3) S6.next=S1.next || S3.next
(4) S7.next=S3.next
(5) S8.next=E1.false

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5719134.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-18
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存