文档详情

运行时存储空间组织和.ppt

发布:2025-03-22约1.07万字共10页下载文档
文本预览下载声明

Display表的维护(过程不作为参数传递)1当嵌套深度为i的过程的活动记录筑在栈顶时:在新的活动记录中保存d[i]的值;置d[i]指向新的活动记录。2在一个活动结束前,d[i]置成保存的旧值。3用Display表如何访问非局部量?Display表是一个数组,开始地址用通用4寄存器指出;Display表由一组寄存器实现。5ssa,xdisplayrrq(1,9)q(1,9)k,vp(1,9)p(1,9)e(1,9)e(1,9)saved[2]q(1,3)q(1,3)saved[2]k,vp(1,3)p(1,3)saved[3]i,j图6.19设p(嵌套深度为j)调用q(嵌套深度为i)1.jiPcallqq?d[1]d[2]?d[j]d[i]Pq2.j?iq?d[1]d[2]?d[i-1]d[i]PqPcallqSaved[i]j=i2.j?ijiq?d[1]d[2]?d[i-1]d[i]PqpcallqSaved[i]???Pcallq??q?d[j]Saved[j]??程序运行时,一个名字a实施其影响,直到含a的声明的一个过程开始执行时暂停,此过程停止时,该影响恢复。01设有下面的的调用序列:02A?B?C?P03过程P中有对x的非局部引用,沿动态链(红链)查找,最先找到的便是。047.3.3动态作用域7.3.3动态作用域programdynamic(input,output);varr:real;procedureshow;beginwrite(r:5:3)end;proceduresmall;varr:real;beginr:=0.125;showend;begin 静态作用域r:=0.25; 0.250 0.250show;small;writeln; 0.250 0.250show;small;writelnend.dynamicshowsmallsmallshowshowshow7.3.3动态作用域programdynamic(input,output);varr:real;procedureshow;beginwrite(r:5:3)end;proceduresmall;varr:real;beginr:=0.125;showend;begin 动态作用域r:=0.25; 0.250 0.125show;small;writeln; 0.250 0.125show;small;writelnend.dynamicshowsmallsmallshowshowshow7.2.3栈式全局存储分配策略当前活跃着的过程活动保存在栈中控制栈的内容:s,q(1,9),q(1,3),q(2,3)sq(1,9)rp(1,9)q(1,3)q(1,0)p(1,3)q(2,3)q(2,1)q(3,3)p(2,3)q(5,9)q(5,5)p(5,9)q(7,9)q(7,7)q(9,9)p(7,9)7.2.3栈式存储分配策略运行栈:把控制栈中的信息拓广到包括过程活动所需的所有局部信息(即活动记录)7.2.3栈式存储分配策略ss运行栈:把控制栈中的信息拓广到包括过程活动所需的所有局部信息(即活动记录)a:array7.2.3栈式存储分配策略运行栈:把控制栈中的信息拓广到包括过程活动所需的所有局部信息(即活动记录)si:integerra:arraysr7.2.3栈式存储分配策略运行栈:把控制栈中的信息拓广到包括过程活动所需的所有局部信息(即活动记录)sk:integerq(1,9)a:ar

显示全部
相似文档