-->
当前位置:首页 > 题库

主观题:h0034. 给出过程调用时刻运行栈的布局和使用的display表。

Luz4年前 (2022-06-03)题库805
下面是一个类PASCAL结构(嵌套过程)的程序,该语言的编译器采用栈式动态分配策略管理目标程序数据空间。

program demo;
procedure A;
procedure B;
begin

if d then B else A;
end;
begin
B;
end;
begin
A;
end.

若过程调用为:demo →A→B
分别给出这个时刻运行栈的布局和使用的display表。










答案:解答:此时的运行栈只有主程序demo、过程A和过程B的3个数据区,过程B嵌套定义在过程A中,要引用主程序demo全局数据、过程A的数据和其自身的局部数据,因此其display表内容有3项,即主程序数据区首址、过程A的主程序数据区首址和过程B本身的数据区首址。-------------------5分

![11.png](~/05bb0703-6f30-415a-bb2a-86b4f7ebe6fb.png) -------------------5分