编译原理课后答案(陈火旺) 下载本文

课后答案网 http://www.khdaw.com

P306-2

read A,B F:=1

C:=A*A B1 D:=B*B if C

E:=E+F B2 write E halt

---------------------------

L1: E:=B*B

F:=F+2

E:=E+F B3 write E

if E>100 goto L2

课后答案网 http://www.khdaw.com

BBBBB

课后答案网 http://www.khdaw.com

---------------------------

halt B4 ---------------------------

L2: F:=F-1

goto L1 B5 ---------------------------

基本块为B1、B2、B3、B4、B5

P307-4

I:=1 read J,K A:=K*I B:=J*I T:=K*100 L: C:=A*B write C A:=A+K B:=B+J if A

B2有回路,所以{B2}是循环,B2既是入口节点,又是出口节点 (1) 代码外提:不存在不变运算,故无代码外提 (2) 强度削弱:A:=K*I B:=J*I *→+

(3) 删除基本归纳变量:I<100 可以用A<100*K或B<100*J代替

课后答案网 http://www.khdaw.com

课后答案网 http://www.khdaw.com

P307-5

A:=0

I:=1

B:=J+1

C:=B+I

T:=B+100

L1’: A:=C+A

if C=T goto L2

C:=C+1

goto L1’

L2’:

{B2,B3}是循环,B2是入口节点,也是出口节点 (1) 代码外提:B:=J+1 (2) 删除归纳变量 (3)

课后答案网 http://www.khdaw.com