如果这篇博客帮助到你,可以请我喝一杯咖啡~
CC BY 4.0 (除特别声明或转载文章外)
令 a 表示一个 2*3
的整型数组,b 表示一个 3*4
的整型数组. 假定一个整数的宽度为 4
. 试使用课本图 6.22 的翻译模式,翻译赋值语句 x = a[i][j] + b[i][j]
. 提示:参考课本例 6.12
t1 = i * 12;
t2 = j * 4;
t3 = t1 + t2;
t4 = a[t3];
t5 = i * 16;
t6 = j * 4;
t7 = t5 + t6;
t8 = b[t7];
x = t4 + t8;
龙书 Exercise 6.6.1 a)
在图 6-36 的语法制导定义中添加处理下列控制流构造的原则。
一个 repeat 语句:S -> repeat S1 while B
S1.next = newlabel()
B.ture = newlabel()
B.false = S.next
S.code = label(B.ture) || S1.code || label(S1.next) || B.code
一个 for 循环语句:S -> for (S1; B; S2) S3
S1.next = newlabel()
B.ture = newlabel()
B.false = S.next
S2.next = S1.next
S3.next = newlabel()
S.code = S1.code || label(S1.next) || B.code || label(B.ture) || S3.code || label(S3.next) || S2.code || gen('goto', S1.next)