显示包含所有激活记录实例的堆栈,包括静态链和动态链

时间:2015-12-04 23:33:51

标签: stack computer-science

当执行到达下面骨架程序中的指示位置时,显示包含所有激活记录实例的堆栈,包括静态链和动态链。假设Bigsub是1级,子程序调用的顺序是Bigsub调用A,A调用B,B调用A,A调用C,C调用D。

procedure Bigsub;
    procedure C; forward;
    procedure A;
       procedure B;
       end;  {B}
    end;  {A}
    procedure C;
       procedure D;
      *** Here is the point ***
       end;  {D}
    end;  {C}
 end;  {Bigsub}

我有一些与此类似的问题。我不明白究竟是什么问题,什么是动态链和静态链。我有下面的图像显示了堆栈,这就是我的理解,但我不知道那些箭头代表什么。此外,图像是否缺乏激活记录实例,还是作为解决方案好? enter image description here

1 个答案:

答案 0 :(得分:2)

静态链是连接某些激活的静态链接链 记录堆栈中的实例。 动态链是给定时间堆栈中动态链接的集合。 在你的情况下,每当你说这个"电话"然后在那里添加一个动态链。对于静态链,你只需要查看哪个函数是静态的one.one。好的例如C嵌套D所以C和D具有静态链,如此。