编译原理与技术 运行环境 2021/218 《编译原理与技术》一运行环境
2021/2/8 《编译原理与技术》-运行环境 1 编译原理与技术 运行环境
运行环境 存储组织与分配 程序单元、运行时内存划分与活动记录 静态/动态存储分配 动态栈式的过程调用/返回 非局部名字的访 参数传递 a参数传递的方式及其实现 2021/2/8 《编译原理与技术》一运行环境
2021/2/8 《编译原理与技术》-运行环境 2 运行环境 存储组织与分配 程序单元、运行时内存划分与活动记录 静态/动态存储分配 动态栈式的过程调用/返回 非局部名字的访问 参数传递 参数传递的方式及其实现
存储组织与分配 程序单元 FORTRAN的子例程( subroutine) PASCAL的过程/函数( rocedure/function) C的函数 程序单元的激活(调用)与终止(返回) 程序单元的执行需要: 代码段十活动记录(程序单元运行所需的额 外信息,如参数,局部数据,返回地址等) 2021/2/8 《编译原理与技术》一运行环境 3
2021/2/8 《编译原理与技术》-运行环境 3 存储组织与分配 程序单元 -FORTRAN的子例程(subroutine) -PASCAL的过程/函数(procedure/function) -C的函数 程序单元的激活(调用)与终止(返回) 程序单元的执行需要: 代码段+活动记录(程序单元运行所需的额 外信息,如参数,局部数据,返回地址等)
运行时内存划分 代码段 大小可以静态确定 静态数据区 全局/局部静态变量 匚栈( stack 活动记录栈 堆(heap) 动态分配的数据 2021/2/8 《编译原理与技术》一运行环境 4
2021/2/8 《编译原理与技术》-运行环境 4 运行时内存划分 代码段 静态数据区 栈(stack) 堆(heap) 大小可以静态确定 全局/局部静态变量 活动记录栈 动态分配的数据
活动记录 活动记录一AR( Activation record 是一连续存储区域,用于管理与存放和程序 单元执行相关的重要信 AR中的内容 一临时区域。用以保存临时计算结果 局部数据区。源程序中程序单元声明的局 部变量对应在此区域。 机器状态保存区。存有机器的寄存器,程 序指令计数器ip(返回地址)等。2 2021/2/8 《编译原理与技术》一运行环境 5
2021/2/8 《编译原理与技术》-运行环境 5 活动记录 活动记录-AR (Activation Record) 是一连续存储区域,用于管理与存放和程序 单元执行相关的重要信息。 AR中的内容 - 临时区域。用以保存临时计算结果 - 局部数据区。源程序中程序单元声明的局 部变量对应在此区域。 - 机器状态保存区。存有机器的寄存器,程 序指令计数器 ip(返回地址)等