当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

《编译原理与技术》课程教学资源(PPT课件讲稿)运行环境

资源类别:文库,文档格式:PPT,文档页数:62,文件大小:679.5KB,团购合买
 存储组织与分配  程序单元、运行时内存划分与活动记录  静态/动态存储分配  动态栈式的过程调用/返回  非局部名字的访问  参数传递  参数传递的方式及其实现
点击下载完整版文档(PPT)

编译原理与技术 运行环境 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(返回地址)等

活动记录 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

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共62页,可试读20页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有