77范文网 - 专业文章范例文档资料分享平台

《编译原理》(陈火旺版)课后作业参考答案ch6-10(2)

来源:网络收集 时间:2018-12-06 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

procedure B; VAR c: char; Begin …(1)… end; {B} procedure C; VAR t: real; Begin …(2)… end; {C} Begin …… B; C; …… end; {A } Begin { main } … A(d); …

end. 【答案】

运行到(1) 时的运行栈:(静态链) 运行到(2) 时的运行栈:(静态链)

15 c 14 0(形参个数) 15 c 13 5 14 12 返回地址 B 0(形参个数) 13 5 C 11 5 12 返回地址 10 p 11 5 9 k(形参) 10 p 8 1(形参个数) 9 k(形参) 8 1(形参个数) 7 0 A 7 0 A 6 返回地址 6 返回地址 5 0 5 0 4 d 4 d 3 i 3 i 2 0 Tr 2 0 Tr 1 返回地址 1 返回地址 0

0 0 0

6

【答案】

运行到(1) 时的运行栈:(Display表) 运行到(2) 时的运行栈:(Display表)

20 c 20 t 19 13 19 13 18 5 18 5 17 0 17 0 B C 16 0(形参个数) 16 0(形参个数) 15 10(全局display) 15 10(全局display) 14 返回地址 14 返回地址 13 5 13 5 12 p 12 p 11 5 11 5 10 0 10 0 9 k(形参) 9 k(形参) A A 8 1(形参个数) 8 1(形参个数) 7 6 5 4 3 2 1 0

2(全局display) 返回地址 0 d i 0(display) 返回地址 0 主程序Tr 7 6 5 4 3 2 1 0

2(全局display) 返回地址 0 d i 0(display) 返回地址 0 主程序Tr 6. 有如下示意的Pascal源程序,并已知在运行时刻,以过程为单位对程序中的变量进行动态存储分配。当运行主程序而调用过程语句X时,试分别给出以下时刻的运行栈的内容和Display的内容。

(1) 已开始而尚未执行完毕标号为10的语句; (2) 已开始而尚未执行完毕标号为11的语句; program main; VAR a, b, c: integer; procedure X ( i, j: integer); {X} VAR d, e: real; procedure Y; {Y} VAR f, g: real; Begin …… end; {Y} procedure Z( k: integer); {Z} VAR h, i, j: real; Begin …… end; {Z}

7

Begin …… 10: Y; …… 11: Z; …… end; {X} Begin { main } …… X (a, b); …… end. { main } 【答案】 (1) 运行到标号10时,运行栈的内容: (2) 运行到标号11时,运行栈的内容: j 24 g 26 23 f 25 i 22 16 24 h 21 6 23 16 Z Y 20 0 22 6 19 0(形参个数) 21 0 18 12(全局display) 20 k 17 返回地址 19 1(形参个数) 16 6 18 12(全局display) 15 e 17 返回地址 14 d 16 6 13 6 15 e 12 0 14 d X (a, b) 11 j 13 6 X (a, b) 10 i 12 0 9 2(形参个数) 11 j 8 2(全局display) 10 i 7 返回地址 9 2(形参个数) 6 0 8 2(全局display) 5 c 7 返回地址 4 b 6 0 3 a 5 c main 2 0(display) main 4 b 1 返回地址 3 a 0 0 2 0 (display) 1 返回地址

0 0 main → X(a,b) →Y

main → X(a,b) →Y →Z

8

第10章 优化

1. 试把以下程序划分为基本块并作出其程序流图。 【答案】 real C real C A:=0 A:=0 B:=1 B:=1 L1: A:=A+B

if B≧C goto L2

B:=B+1 L1: A:=A+B goto L1 if B≧C goto L2 L2: write A

halt

B:=B+1 L2: write A goto L1 halt

2. 试把以下程序划分为基本块并作出其程序流图。

【答案】

real A, B

F:=1 real A,B C:=A*A F:=1

D:=B*B C:=A*A

if C

E:=A*A if C

F:=F+1

E:=E+F

write E E:=A*A L1: E:=B*B

halt F:=F+1 F:=F+2

L1: E:=B*B E:=E+F E:=E+F

F:=F+2 write E write E

halt if E>100 goto L2 E:=E+F

write E

if E>100 goto

L2 L2: F:=F-1 halt goto L1 halt

L2: F:=F-1

9

3. 试对以下基本块B1和B2:

B1: A:=B*C B2: B:=3

D:=B/C D:=A+C

E:=A+D E:=A*C

F:=2*E G:=B*F

G:=B*C H:=A+C

H:=G*G I:=A*C

F:=H*G J:=H+I

L:=F K:=B*5

M:=L L:=K+J

M:=L 分别应用DAG对它们进行优化,并就以下两种情况分别写出优化后的四元式序列:(1) 假设只有G,L,M在基本块后面还要被引用; (2) 假设只有L在基本块后面还要被引用。

【答案】

B1基本块:(1) G, L, M可用 (2) L可用

(1) G:=B*C (1) G:=B*C

(2) H:=G*G (2) H:=G*G

(3) L:=H*G (3) L:=H*G

(4) M:=L

B2基本块:(1) G, L, M可用 (2) L可用

(1) D:=A+C (1) D:=A+C

(2) E:=A*C (2) E:=A*C

(3) G:=3*F (3) J:=D+E

(4) J:=D+E (4) L:=15+J

(5) L:=15+J

(6) M:=L

10

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库《编译原理》(陈火旺版)课后作业参考答案ch6-10(2)在线全文阅读。

《编译原理》(陈火旺版)课后作业参考答案ch6-10(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/348634.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: