第节楼式分 语言特点:允许递归,允许动态数组, 允许过程嵌套定义
第三节 栈式分配 语言特点:允许递归,允许动态数组, 允许过程嵌套定义
只含半静态变量的栈式分配 1.特点: 仅允许递归调用 变量及活动记录长度可静态确定 一个单元可多次激活而有多个实例, 每个活动记录是在单元每次激活时 动态建立并与代码段建立绑定关系 的
一. 只含半静态变量的栈式分配 1. 特点: •仅允许递归调用 •变量及活动记录长度可静态确定 •一个单元可多次激活而有多个实例, 每个活动记录是在单元每次激活时 动态建立并与代码段建立绑定关系 的
2处理方法 (1)设置当前栈指针 current,表示当前活动 记录的开始位置 (2)指针fre表示数据存储器下一个可用单元 (3)变量绑定于它在活动记录中的常数位移i, 变量通过 current变址访问 (4)A调用B时,在A活动记录的栈顶之上建 立起绑定于B的当前实例的活动记录 (5)从B返回时,释放其活动记录
2. 处理方法 (1)设置当前栈指针current,表示当前活动 记录的开始位置 (2)指针free表示数据存储器下一个可用单元 (3)变量绑定于它在活动记录中的常数位移i, 变量通过current变址访问 (4)A调用B时,在A活动记录的栈顶之上建 立起绑定于B的当前实例的活动记录 (5)从B返回时,释放其活动记录
3.动态连接和动态链 动态连接:A调用B时,B的活动记 录中保存的A的活动记录地址 动态链:由动态连接组成的一个调 用链
3. 动态连接和动态链 •动态连接:A调用B时,B的活动记 录中保存的A的活动记录地址 •动态链:由动态连接组成的一个调 用链
acall e: e call ff call g call f. A E F G
A E F G F A call E; E call F; F call G; G call F; ... ... ... ...