蒋立源编译原理第三版第八章习题与答案.docx

上传人:b****7 文档编号:23666899 上传时间:2023-05-19 格式:DOCX 页数:11 大小:557.76KB
下载 相关 举报
蒋立源编译原理第三版第八章习题与答案.docx_第1页
第1页 / 共11页
蒋立源编译原理第三版第八章习题与答案.docx_第2页
第2页 / 共11页
蒋立源编译原理第三版第八章习题与答案.docx_第3页
第3页 / 共11页
蒋立源编译原理第三版第八章习题与答案.docx_第4页
第4页 / 共11页
蒋立源编译原理第三版第八章习题与答案.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

蒋立源编译原理第三版第八章习题与答案.docx

《蒋立源编译原理第三版第八章习题与答案.docx》由会员分享,可在线阅读,更多相关《蒋立源编译原理第三版第八章习题与答案.docx(11页珍藏版)》请在冰豆网上搜索。

蒋立源编译原理第三版第八章习题与答案.docx

蒋立源编译原理第三版第八章习题与答案

 

蒋立源-编译原理第三版第八章-习题与答案(总10页)

第8章习题

7-1设有如下的三地址码(四元式)序列:

readN

I:

=N

J:

=2

L1:

ifI≤JgotoL3

L2:

I:

=I-J

ifI>JgotoL2

ifI=0gotoL4

J:

=J+1

I:

=N

gotoL1

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-4对于题图7-4所示的控制流程图:

(1)分别求出它们各个结点的必经结点集;

(2)分别求出它们的各个回边;

(3)找出各流程图的全部循环。

7-5对于如下的程序:

I:

=1

readJ,K

L:

A:

=K*I

B:

=J*I

C:

=A*B

writeC

I:

=I+1

ifA<100gotoL

halt

试对其中的循环进行可能的优化。

 

第8章习题答案

7-1解:

划分情况及控制流程如答案图7-1所示:

答案图7-1将四元式序列划分为基本块

7-2解:

(1)相应的DAG如答案图7-2所示。

答案图7-2DAG

(2)优化后的代码为:

 D:

=B*C

 E:

=A+B

 B:

=D

 A:

=E+D

7-3解:

(1)相应的DAG如答案图7-3-

(1)所示。

若只有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如答案图7-3-

(2)所示。

若只有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的控制结点。

7-5解:

(1)划分基本块后的流程图如答案图7-5-

(1)所示。

(2)削弱运算强度后的流程图如答案图7-5-

(2)所示。

答案图7-5-

(2)削弱运算强度后的流程图

(3)消除归纳变量后的流程图如答案图7-5-(3)所示。

答案图7-5-(3)消除归纳变量后的流程图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 解决方案

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1