- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 习题
7-1 设有如下的三地址码(四元式)序列:
read N
I:=N
J:=2
L1 : if I≤J goto L3
L2 : I:=I-J
if IJ goto L2
if I=0 goto L4
J:=J+1
I:=N
goto L1
L3 : Print ′YES′
halt
L4 : Print ′NO′
halt
试将它划分为基本块,并作控制流程图。
7-2 考虑如下的基本块:
D:=B*C
? E:=A+B
? B:= B*C
? A:=E+D
(1) 构造相应的DAG;
(2) 对于所得的DAG,重建基本块,以得到更有效的四元式序列。
7-3 对于如下的两个基本块:
(1) A:=B*C
D:=B/C
? E:=A+D
F:=2*E
G:=B*C
H:=G*G
F:=H*G
L:=F
M:=L
(2) B:=3
D:=A+C
E:=A*C
F:=E+D
G:=B*F
H:=A+C
I:=A*C
J:=H+I
K:=B*5
L:=K+J
M:=L
分别构造相应的DAG,并根据所得的DAG,重建经优化后的四元式序列。在进行优化时,须分别考虑如下两种情况:
(ⅰ)变量G、L、M在出口之后L在出口之后
7-5 对于如下的程序:
I:=1
read J,K
L: A:=K*I
B:=J*I
C:=A*B
write C
I:=I+1
if A100 goto L
halt
试对其中的循环进行可能的优化。
第8章 习题答案
7-1 解:划分情况及控制流程如图:
7-2 解:DAG如答案图
答案图优化后的代码为? D:=B*C
? E:=A+B
? B:=D
? A:=E+D
7-3 解:
DAG如答案图。
若只有G、L、M在出口之后,则优化后的代码为:
G:=B*C
H:=G*G
L:=H*G
M:=L
若只有L在出口之后,则代码为G:=B*C
H:=G*G
L:=H*G
(2) 相应的DAG如答案图。
若只有G、L、M,则代码为D:=A+C
E:=A*C
F:=E+D
G:=3*F
L:=15+F
M:=L
若只有L,则代码为D:=A+C
E:=A*C
F:=E+D
L:=+F15
7-4 解:
(a) 必经结点集:D2={2}
D3 ={2,3}, D4 ={2,4}
D5 ={2,4,5} D6 ={2,4,6}
D7 ={2,4,7} D8={2,4,7,8}
回边及相应循环:7→4:{4,5,6,7}
8→2:{2,3,4,5,6,7,8}
(b) 必经结点集:D1 ={1} D2 ={1,2}
D3 ={1,2,3} D4 ={1,2,3,4}
D5 ={1,2,3,5} D6 ={1,2,3,6}
D7 ={1,2,7} D8 ={1,2,7,8}
回边及相应循环:7→2:{2,3,4,5,6,7}
(c) 必经结点集:D1 ={1} D2 ={1,2},
D3 ={1,2,3} D4 ={1,2,4},
D5 =1,2,5} D6 ={1,2,3,6},
D7 ={1,2,7}
回边及相应循环:5→2:{2,3,4,5}
6→6: {6}
注意:5→4不是回边。因为4不是5的控制结点。图。
(2) 削弱运算强度后的流程图如答案图。
答案图图。
答案图
文档评论(0)