过程与活动过程的每一次运行或执行被称为一次活动.ppt
上传人:天马****23 上传时间:2024-09-11 格式:PPT 页数:16 大小:331KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

过程与活动过程的每一次运行或执行被称为一次活动.ppt

过程与活动过程的每一次运行或执行被称为一次活动.ppt

预览

免费试读已结束,剩余 6 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

例:写出参数传递的结果Programsimple(output);varx:integer;procedurechange(y:integer);beginy:=1end;beginx:=0;change(x);write(x)End.9.2运行时存储器的划分二.活动记录每个活动记录的大小在编译时可以确定(除动态数据),因此以SP为变址器可方便的访问各个数据。9.3简单的栈式存储分配TOP:始终指向已占用的栈顶单元。二.C的过程调用、过程进入、过程返回2.过程进入9。5嵌套过程语言的栈式实现9.5.1非局部名字的访问实现一、静态链和活动记录结构:二、嵌套层次显示表(display)和活动记录为了提高访问非局部变量的速度,动态组织一个嵌套层次显示表(display)放入活动记录中。display中存有本层及各外层的活动记录首地址。为了快速动态生成display表,需将调用过程的display表地址(全局display)作为连接数据传递,因此,活动记录结构改为右图所示:p262(a)Display表的生成过程:9。5嵌套过程语言的栈式实现(PASCAL语言)例:programp;vara,x:integer;procedureQ(b:integer);vari:integer;procedureR(u:integer;varv:integer);varc,d:integer;beginifu=1thenR(u+1,v)……v:=(a+c)*(b-d);…….end{R}begin….R(1,x);…….end{Q}procedureS;varc,i:integer;begina=1;Q(c);…….end{S}begina=0;S;……过程调用时活动记录的变化end见p260,2629.5堆式动态存储分配2.变长块管理根据用户要求的大小分配空间。所有的空闲空间组成链表,有申请时从链表中找一块合适的空闲空间分配,分配策略有三种:首次满足法、最有满足法、最差满足法。回收时要进行空闲空间的合并。