编译原理课后习题答案

2026/4/24 11:15:04

7. 根据标识符的作用域规则,分别给出图6.5的程序中,过程P、Q、R、S中有效的标识符。

21

第七章

1. 将算术表达式 (a+b)*(c+d)-(a+b+c) 翻译成四元式序列。 2. 将下列语句翻译成四元式序列:

a. IF x>0 THEN x:=0 ELSE x:=1 b. WHILE x>0 DO x:=x-1 c. IF x>0 THEN x:=x+1 ELSE

IF x <0 THEN x:=x+1 ELSE x:=x+1 d. WHILE x > 0 DO

WHILE y > 0 DO BEGIN y:=y-x; x:=x-1 END

3. 给出如下程序段的四元式序列。(四元式的操作符可用自身代替)。其中A:Array of [1..10]

of integer。 a:=1;

while a<=10 do begin if a<>b then

A[a]:=A[b]+2;

else a:=a+1; b:=b+1; end

4. 试将FOR语句翻译成四元式序列。 5. 试将UNTIL语句翻译成四元式序列。 6. 试将CASE语句翻译成四元式序列。

7. 试给出4、5、6题中翻译过程的语法制导程序。

22

第八章

1. 将下面的程序段划分为基本块并画出其程序流图。

read(A); read(B); F:=1; C:=A*A; D:=B*B; if C100 goto L2; goto L3; goto L1;

L1: E:=B*B;

L2: F:=F-1; L3: write(E);

2. 假设有如下语句序列,写出常表达式优化前和优化后的四元式中间代码。

(1) i:=1;

(2) a:=20; b:=a*(a+10);

c:=a*b;

j:=i*(i+1); k:=2*(i+j);

3. 假设有如下语句序列或表达式,写出公共表达式优化前和优化后的四元式中间代码。

(1) x:=x*y+z; y:=x*y+z; z:=x*y+z; (2) (a*b+c)/(a*b-c)+(c*b+a-d)/(a*b+c) while i<=100 do

begin end

u:=A*B; m:=u*u; S:=S+m*m; i:=i+1;

4. 写出如下循环语句不变式外提后的四元式中间代码。

5. 写出下面循环语句不变式外提后的四元式中间代码,其中数组各下标的类型为1..10。

while i<=100 do

begin

j:=1;

while j<=100 do

23

end

begin end

k:=1;

while k<=100 do

A[i][j][k]:=0;

24


编译原理课后习题答案.doc 将本文的Word文档下载到电脑
搜索更多关于: 编译原理课后习题答案 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219