这种语言若含有可变数组,则其过程活动记录的内容可如图10.9所示。
假定图10.9所示为图10.8(a)中现行过程R的活动记录,SP为此过程活动记录的起点,TOP指向为此过程创设的活动记录的顶端,并假定R含有可变数组,则在分配了数组区之后TOP就指向数组区(整个运行栈)的顶端。图10.10表明分配数组区之后的运行栈情况,可以与图10.8(a)对照。 在过程段中对任何局部变量x的引用可表示为变址访问x[SP],此处x代表变量x的相对数,也就是相对于活动记录起点的地址。这个相对数在编译时可完全确定下来。过程的局部数组的内情向量的相对地址在编译时也同样可确定下来。数组空间分配之后,对数组元素的引用也就容易用变址访问的方式来实现。 |