编译原理讲义 (6).ppt

编译原理讲义 (6).ppt

ID:51591847

大小:1.21 MB

页数:76页

时间:2020-03-24

编译原理讲义 (6).ppt_第1页
编译原理讲义 (6).ppt_第2页
编译原理讲义 (6).ppt_第3页
编译原理讲义 (6).ppt_第4页
编译原理讲义 (6).ppt_第5页
资源描述:

《编译原理讲义 (6).ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、§6运行时刻环境学时:6知识点:活动记录、控制栈栈式存储分配非局部名字的访问参数传递方式§6运行时刻环境程序运行时刻的环境,即讨论运行中程序的信息是怎样存储和访问的。讨论名字和数据对象之间的关系,把静态程序正文与运行时刻的动作联系起来,源程序正文中相同的名字可以在目标程序中指示不同的数据对象数据对象的空间分配和释放由运行时的支持程序包管理由一些和产生的目标代码一起装入的例行程序组成,它的设计受过程语义的影响运行时刻数据对象的表示形式由它的类型来决定基本的数据类型可以用目标机器中等价的数据对象来表示复杂的数据

2、类型一般用基本数据类型的组合来表示存储组织与管理早期的计算机上,这个存储管理工作是由程序员自己来完成有了高级语言之后,程序中使用的存储单元都由标识符来表示,它们对应的内存地址由编译程序在编译时或由其生成的目标程序在运行时进行分配。存储的组织及管理是编译程序要完成的一个复杂而又十分重要的工作。2本章主要内容6.1源语言问题6.2存储组织6.3存储分配策略6.4访问非局部名字6.5参数传递小结作业36.1源语言问题一、过程二、活动树三、控制栈四、声明的作用域五、名字的结合六、其他问题4一、过程过程的定义一个声明

3、语句把一个标识符和一个语句联系起来标识符是过程名,语句是过程体。过程的分类过程:没有返回值的过程函数:有返回值的过程也可以把函数、一个完整的程序看作过程参数:形参、实参过程引用:过程名出现在一个可执行语句中5programsort(input,output);vara:array[0..10]ofinteger;procedurereadarray;vari:integer;beginfori:=1to9doread(a[i])end;functionpartition(y,z:integer):integ

4、er;vari,j,x,v:integer;begin…end;peocedurequicksort(m,n:integer);vari:integer;beginif(n>m)thenbegini:=partition(m,n);quicksort(m,i-1);quicksort(i+1,n);endend;begina[0]:=-9999;a[10]:=9999;readarray;quicksort(1,9);end.读入数据,并进行排序的PASCAL程序6活动活动一个过程的每次执行称为它的一次活动

5、如果一个过程在执行中,则称它的这次活动是活着的过程与活动过程是一个静态概念,活动是一个动态概念过程与活动之间可以是1:1、1:m的关系递归过程,同一时刻可能有若干个活动是活着的每个活动都有自己独立的存储空间/数据空间PPPP有3个活着的活动P有2个活着的活动P有1个活着的活动7二、活动树对程序执行期间过程之间的控制流的两点假设顺序控制方式过程的每一次执行都是从过程体的起点开始,最后控制返回到直接跟随本次调用点的位置。活动的生存期过程体的执行中,第一步和最后一步之间的一系列步骤的执行时间过程P的一次活动的生存

6、期,包括执行过程P所调用的过程的时间,以及这些过程所调用的过程的时间如果a和b是过程的活动,那么它们的生存期要么是不重叠,要么是嵌套的。ababab8活动生存期的嵌套性在每个过程中插入两个打印语句第一个语句之前,打印:enter过程名(实参的值)最后一个语句之后,打印:leave过程名(实参的值)排序程序执行后的输出结果:entersortenterreadarrayleavereadarrayenterquicksort(1,9)enterpartition(1,9)leavepartition(1,9)

7、enterquicksort(1,3)…leavequicksort(1,3)enterquicksort(5,9)…leavequicksort(5,9)leavequicksort(1,9)leavesort递归过程:如果一个过程,它的不同活动的生存期可以嵌套,则这个过程是递归的直接递归、间接递归9活动树—描述控制进入和离开活动的踪迹每一个结点代表一个过程的一个活动根结点代表主程序的活动结点a是b的父结点,当且仅当控制从a的活动进入b结点a在b的左边,当且仅当a的生存期先于b的生存期Srp(1,9)=4

8、p(1,3)=1p(2,3)=2q(1,9)q(1,3)q(5,9)q(7,9)q(1,0)q(2,3)p(5,9)=6q(5,5)q(9,9)q(2,1)q(3,3)p(7,9)=8q(7,7)程序中的控制流对应于:从根结点开始,按深度优先的顺序遍历活动树,访问一个结点先于其子结点,按从左到右的顺序访问一个结点的子结点。10p(1,3)p(1,3)q(1,0)q(2,3)q(1,0)q(1,9)q(1,9)三、

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。