活动记录 AR中的内容 访问链(静态链)。当前程序单元可以访 问的(静态程序中)外围程序单元的活动记 录链 控制链(动态链)。程序单元的活动记录 按它们的生成(或调用)次序串成链 实在参数 返回值 2021/2/8 《编译原理与技术》一运行环境 6
2021/2/8 《编译原理与技术》-运行环境 6 活动记录 AR中的内容 - 访问链(静态链)。当前程序单元可以访 问的(静态程序中)外围程序单元的活动记 录链。 - 控制链(动态链)。程序单元的活动记录 按它们的生成(或调用)次序串成链。 - 实在参数 - 返回值
活动记录的内容 返回值( return value) 实在参数( actual parameter) 控制链( control link) 可选的访问链( optional access/ static link) 机器状态( saved machine status) 局部数据( local data) 临时区( temporaries) 2021/2/8 《编译原理与技术》一运行环境 7
2021/2/8 《编译原理与技术》-运行环境 7 活动记录的内容 返回值(return value) 实在参数(actual parameter) 控制链(control link) 可选的访问链(optional access/static link) 机器状态(saved machine status) 局部数据(local data) 临时区(temporaries)
活动记录内容的存取 返回值 实在参数 控制链(odbp) 可选的访问链 AR的基地址D,机器状态 局部数据 临时区 2021/2/8 《编译原理与技术》一运行环境 8
2021/2/8 《编译原理与技术》-运行环境 8 活动记录内容的存取 返回值 实在参数 控制链 (old bp) 可选的访问链 机器状态 局部数据 临时区 AR的基地址bp
活动记录内容的存取 返回值 地址: 实在参数 bp+d 偏移 控制链(odbp) d 可选的访问链 d1、d2谁正谁负? DP停移局部数据 机器状态 临时区 地址 bp+d2 2021/2/8 《编译原理与技术》一运行环境 9
2021/2/8 《编译原理与技术》-运行环境 9 活动记录内容的存取 返回值 实在参数 控制链(old bp) 可选的访问链 机器状态 局部数据 临时区 bp 偏 移 d1 偏移d2 地址: bp+d1 地址: bp+d2 d1、d2谁正谁负?
静态存储分配 全局变量的存储绑定、AR均在编译时确定 且在整个程序执行中保持 不支持: 1)动态数据结构 2)过程递归调用 实现静态分配的语言: (早期) FORTRAN 2021/2/8 《编译原理与技术》一运行环境 10
2021/2/8 《编译原理与技术》-运行环境 10 静态存储分配 - 全局变量的存储绑定、AR均在编译时确定 且在整个程序执行中保持。 - 不支持: 1)动态数据结构 2)过程递归调用 - 实现静态分配的语言: (早期)FORTRAN