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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乔卿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值