南京大学:《编译原理》课程教学资源(PPT课件讲稿)第七章 运行时刻环境

第七章运行肘刻环境 赵建华 南京大学计算机系
第七章 运行时刻环境 赵建华 南京大学计算机系

运行附刻环境 运行时刻环境 为数捃分配安排存储位置 确定访问变量时使用的杋制 过程之间的连接 参数传递 和操作系统、输入输出设备相关的其它接口 主题 存储管理:栈分配、堆管理、垃圾回收 对变量、数据的访问
运行时刻环境 • 运行时刻环境 – 为数据分配安排存储位置 – 确定访问变量时使用的机制 – 过程之间的连接 – 参数传递 – 和操作系统、输入输出设备相关的其它接口 • 主题 – 存储管理:栈分配、堆管理、垃圾回收 – 对变量、数据的访问

存储分配的典型方式 目标程序的代码放置在代 代码区 码区 静态区 静态区、堆区、栈区分别 放置不同类型生命期的数 堆区 据值 空闲内存 栈区
存储分配的典型方式 • 目标程序的代码放置在代 码区 • 静态区、堆区、栈区分别 放置不同类型生命期的数 据值

静态和动态存储分配 ·静态分配 编译器在编译时刻就可以做出存储分配决定.不需 要考虑程序远行时刻的情形 全局变量 动恋分配 栈式存储:和过程的调用/返回同步进行分配和回收, 值的生命期和过程生命期相同 堆存储:数据对象比创建它的过程调用更长寿。 ·手工进行回收 垃圾回收机制
静态和动态存储分配 • 静态分配 – 编译器在编译时刻就可以做出存储分配决定,不需 要考虑程序运行时刻的情形 – 全局变量 • 动态分配 – 栈式存储:和过程的调用/返回同步进行分配和回收, 值的生命期和过程生命期相同 – 堆存储:数据对象比创建它的过程调用更长寿。 • 手工进行回收 • 垃圾回收机制

栈式分配 内容 活动树 活动记录 调用代码序列 栈中的变长数据
栈式分配 • 内容: – 活动树 – 活动记录 – 调用代码序列 – 栈中的变长数据

活动树 过程调用(过程活动)在时间上总是嵌套的: 后调用的先返回 因此用栈式分配來分配过程活动所需內存空间。 程序远行的所有过程活动可以用树表示 每个结点对应于一个过程活动 根结点对应于main过程的活动 过程p的某次活动对应的结点的所有子结点:此次 活动所调用的各个过程活动(从左向右,表示调用 的先后顺序)
活动树 • 过程调用(过程活动)在时间上总是嵌套的: – 后调用的先返回 – 因此用栈式分配来分配过程活动所需内存空间。 • 程序运行的所有过程活动可以用树表示 – 每个结点对应于一个过程活动 – 根结点对应于main过程的活动 – 过程p的某次活动对应的结点的所有子结点:此次 活动所调用的各个过程活动(从左向右,表示调用 的先后顺序)

活动树的例子(1) 程序:P277,图7-2 过程调用(返回)序列和活动 enter main( 树的前序(后序)遍历对应 enter readArrayo) leave readArrayo 假定当前活动对应结点N.那 enter quicksort(1, 9) enter partition(1, 9) 么所有尚未结束的活动对应于 leave partition(1, 9) N及其祖先结点。 enter quicksort(1, 3) leave quicksort(1, 3) enter quicksort(5, 9) p(1,9) q(1,3 (5,9) p(1,3)q(1,0)q(2,3) leave quicksort(5, 9) (5,9)q(5,5)q(7,9 leave quicksort(1, 9) p(2,3)q(2,1)q(3,3) p(7, 9)q(7. 7)q(9, leave main() 图7-2中程序的可能的活动序列
活动树的例子(1) • 程序:P277,图7-2 • 过程调用(返回)序列和活动 树的前序(后序)遍历对应 • 假定当前活动对应结点N,那 么所有尚未结束的活动对应于 N及其祖先结点

话动记录 过程调用和返回由 实在参数 控制栈进行管理 返回值 每个活跃的活动对 应于栈中的一个活 控制链 动记录 访问链 活动记录按照活动 保存的机器状态 的开始时间,从栈 局部数据 底到栈顶排列 临时变量
活动记录 • 过程调用和返回由 控制栈进行管理 • 每个活跃的活动对 应于栈中的一个活 动记录 • 活动记录按照活动 的开始时间,从栈 底到栈顶排列

运行射刻栈的例子 er o[lll integer a[1]为全局变 main m07 nain nain 7-----,- integer mai没有局部 a)Y被弹出栈 b)y被激活 变量 integer a[lll integer a 11]1 nain nain nain nain r有局部变量1 integer m, n integer m, n (1,9) q(1,9 q(1,9 的局部变量1 integer t integer i p(1,9)q(1,3) Integer m,n 和参数mn。 p(1,3)q(1,0) g(1,3) integer 2 c)y被弹出栈,q(1,9)被压栈 d)控制返回到q(1,3)
运行时刻栈的例子 • a[11]为全局变 量 • main没有局部 变量 • r有局部变量i • q的局部变量i, 和参数m,n

调用代码序列 调用代码序列 calling sequence)为活动记录 分配空间,填写记录中的信息; 返回代码序列( return sequence)恢复机器状 态。使调用者继续运行 调用代码序列会分割到调用者和被调用者 中 根据源语言、目标机器、操作系统的限制, 以有不同的分割方案 把代码尽可能放在被调用者中
调用代码序列 • 调用代码序列(calling sequence)为活动记录 分配空间,填写记录中的信息; • 返回代码序列(return sequence)恢复机器状 态,使调用者继续运行。 • 调用代码序列会分割到调用者和被调用者 中。 – 根据源语言、目标机器、操作系统的限制,可 以有不同的分割方案 – 把代码尽可能放在被调用者中
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《高级人工智能 Advanced Artificial Intelligence》教学资源(PPT讲稿)Lecture 7 Recurrent Neural Network.pptx
- 西安交通大学:《网络与信息安全》课程PPT教学课件(网络入侵与防范)第六章 网络入侵与防范——拒绝服务攻击与防御技术.ppt
- 西安电子科技大学:《计算机通信网》课程教学资源(PPT课件讲稿)第1章 概述(宋锐).ppt
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(PPT课件讲稿)第四讲 CPU调度(part II).ppt
- 大数据集成(PPT讲稿)Big Data Integration.pptx
- 《计算机文化基础》课程教学资源(PPT课件讲稿)第七章 计算机网络基础.ppt
- 《计算机应用基础》课程教学资源(PPT课件讲稿)第四章 电子表格软件(Excel 2003).ppt
- 四川大学:《操作系统 Operating System》课程教学资源(PPT课件讲稿)Chapter 3 Process Description and Control 3.1 What is a Process 3.2 Process States 3.3 Process Description.ppt
- 哈尔滨工业大学:《语言信息处理》课程教学资源(PPT课件讲稿)机器翻译 II Machine Translation II.ppt
- Gas Systems Modeling andSimulation with MSC.EASY5:GD Advanced Class Notes(EAS105 Course Notes).ppt
- 《计算机网络 Computer Networking》课程教学资源(PPT课件讲稿,英文版)Chapter 6 Wireless and Mobile Networks.ppt
- 《图像处理与计算机视觉 Image Processing and Computer Vision》课程教学资源(PPT课件讲稿)Chapter 08 Stereo vision.pptx
- 《计算机文化基础》课程教学大纲 Computer Culture Foundation.pdf
- 《高级语言程序设计》课程教学资源(试卷习题)试题五(无答案).doc
- 大连工业大学:《计算机程序设计(C语言版)》课程教学资源(PPT课件讲稿,共十三章).pps
- 《Visual Basic 6.0程序设计》课程教学资源(PPT课件)第四章 常用控件与窗体.ppt
- 厦门大学:《大数据技术原理与应用》课程教学资源(PPT课件讲稿,2017)第11章 图计算.ppt
- 《计算机导论》课程教学资源(PPT课件讲稿)第9章 计算机学科方法论.ppt
- VB.Net程序设计基础(PPT课件讲稿).ppt
- 《计算机网络》课程教学资源(PPT课件)第4讲 以太网组网及故障排除.ppt
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)第6章 Data-Level Parallelism in Vector, SIMD, and GPU Architectures.ppt
- 河南中医药大学(河南中医学院):《计算机网络》课程教学资源(PPT课件讲稿)第六章 应用层.pptx
- 媒体服务(PPT课件讲稿)Media Services.ppt
- 东北大学:《可信计算基础》课程教学资源(PPT课件讲稿)第6章 TPM核心功能(主讲:周福才).pptx
- 山东大学:《人机交互技术》课程教学资源(PPT课件讲稿)第3章 交互设备 3.5 显示设备 3.6 语音交互设备 3.7虚拟现实系统中的交互设备.ppt
- 《网络搜索和挖掘关键技术 Web Search and Mining》课程教学资源(PPT讲稿)Lecture 11 Probabilistic Information Retrieval.ppt
- 广西医科大学:《计算机网络 Computer Networking》课程教学资源(PPT课件讲稿)Chapter 01 Introduction overview.pptx
- 东南大学:《C++语言程序设计》课程教学资源(PPT课件讲稿)Chapter 10 Classes A Deeper Look(Part 2).ppt
- 《网上开店实务》课程教学资源(PPT讲稿)学习情境1 网上开店创业策划.ppt
- 安徽理工大学:《Linux开发基础 Development Foundation on Linux OS》课程资源(PPT课件讲稿)Section 4 Perl programming(赵宝).ppt
- 香港理工大学:Artificial Neural Networks for Data Mining.ppt
- 《TCP/IP协议及其应用》课程教学资源(PPT课件)第1章 TCP/IP协议基础.ppt
- 清华大学:《高级计算机网络 Advanced Computer Network》课程教学资源(PPT课件讲稿)Lecture 1 Introduction.pptx
- 香港浸会大学:C++ as a Better C; Introducing Object Technology.ppt
- 大庆职业学院:《计算机网络技术基础》课程教学资源(PPT课件讲稿)第2章 数据通信的基础知识.ppt
- The Art of Function Design -Measure and RKHS.ppt
- 《计算机网络与因特网》课程教学资源(PPT课件)Part VII 广域网(简称WAN), 路由, 和最短路径.ppt
- 三维计算机视觉 3D computer vision(基于卡尔曼滤波的运动结构).pptx
- 河南中医药大学(河南中医学院):《计算机文化》课程教学资源(PPT课件讲稿)第七章 数据库技术(主讲:王哲).pptx
- 《单片机原理及应用》课程教学资源(PPT课件讲稿)第14章 单片机应用系统抗干扰与可靠性设计.ppt