编译原理(第2版)课后习题答案详解 (3)

暮烟疏雨之际 分享 2020-06-20 下载文档

答案:

题 2 中当程序编译到 r 的过程体时的名字表 table 的内容为:

name

kind

level/val adr

size x

variable 0 dx y

variable 0

dx+1 p

procedure

0

过程 p 的入口(待填) 5

a

variable 1 dx q

procedure 1

过程 q 的入口 4 s

procedure 1

过程 s 的入口(待填) 5 c

variable 2 dx d

variable

2 dx r

procedure 2

过程 r 的入口 5 e

variable 3 dx f

variable 3

dx+1

注意:q 和 s 是并列的过程,所以 q 定义的变量 b 被覆盖。

第 4 题

指出栈顶指针 T,最新活动记录基地址指针 B,动态链指针 DL,静态链指针 SL 与返 回地址 RA 的用途。

答案:

栈顶指针 T,最新活动记录基地址指针 B,动态链指针 DL,静态链指针 SL 与返回地址 RA 的用途说明如下:

T: 栈顶寄存器 T 指出了当前栈中最新分配的单元(T 也是数组 S 的下标)。

B:基址寄存器,指向每个过程被调用时,在数据区 S 中给它分配的数据段起 始 地址, 也称基地址。

SL: 静态链,指向定义该过程的直接外过程(或主程序)运行时最新数据段的基地址, 用以引用非局部(包围它的过程)变量时,寻找该变量的地址。

DL: 动态链,指向调用该过程前正在运行过程的数据段基地址,用以过程执行结束释 放数据空间时,恢复调用该过程前运行栈的状态。

RA: 返回地址,记录调用该过程时目标程序的断点,即调用过程指令的下一条指令的 地址,用以过程执行结束后返回调用过程时的下一条指令继续执行。

在每个过程被调用时在栈顶分配 3 个联系单元,用以存放 SL,DL, RA。

第 5 题

PL/0 编译程序所产生的目标代码是一种假想栈式计算机的汇编语言,请说明该汇编语 言中下列指令各自的功能和所完成的操作。

(1) INT 0 A (2) OPR 0 0 (3) CAL L A

答案:

PL/0 编译程序所产生的目标代码中有 3 条非常重要的特殊指令,这 3 条指令在 code 中 的位置和功能以及所完成的操作说明如下:


编译原理(第2版)课后习题答案详解 (3).doc 将本文的Word文档下载到电脑

下一篇:用组策略禁ping方法

相关推荐
相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7 元

支付方式:

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

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