第七章-运行环境ppt课件.ppt

第七章-运行环境ppt课件.ppt

ID:58693554

大小:474.50 KB

页数:63页

时间:2020-10-04

第七章-运行环境ppt课件.ppt_第1页
第七章-运行环境ppt课件.ppt_第2页
第七章-运行环境ppt课件.ppt_第3页
第七章-运行环境ppt课件.ppt_第4页
第七章-运行环境ppt课件.ppt_第5页
资源描述:

《第七章-运行环境ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第七章运行环境源语言问题存储组织存储分配策略访问非局部名字参数传递静态和动态静态和动态的联系名字和数据对象数据对象的动态表示名字的作用域数据对象的存储分配过程和活动参数处理运行时支撑程序包源语言问题(1)过程及其执行过程定义:是一个声明,最简单形式是把一个标识符和一个语句联系起来该标识符称为过程名语句是过程体函数:返回值的过程过程调用过程名出现在可执行语句中时,则称这个过程在这点被调用调用者、被调用者和调用点参数形式参数:与局部变量有不同实在参数:在调用点,将其传递给被调用的过程源语言问题(2)programsort(input,output

2、);vara:array[0..10]ofinteger;procedurereadarray;vari:integer;beginfori:=1to9read(a[i])end;functionpartition(m,n:integer);vari,j,x,v:integer;begin….end;procedurequicksort(m,n:integer);vari:integer;beginif(n>m)thenbegini:=partiton(m,n);quicksort(m,i–1);quicksort(i+1,n);endend

3、;begina[0]:=-9999;a[10]:=9999;readarray;quicksort(1,9)end.源语言问题(3)过程的执行的表示:活动树控制流的假设控制流是连续的过程的每次执行都从过程体的起点开始,最后控制返回到直接跟随本次调用点的位置过程间的控制流可以用树表示(调用树)活动:过程体的一次执行活动的生存期:过程体执行的第一步和最后一步之间的步序列包括直接或间接被这个过程调用的其它过程的时间过程的活动的生存期要么是不重叠的,要么是嵌套的递归:如果一个过程的前一个活动结束前,它的一个新的活动又开始递归的两种缘起源语言问题(4)

4、活动树描述控制进入和离开活动:每个结点代表过程的一个活动根结点代表主程序的活动结点a是结点b的父结点,当且仅当控制流从a的活动进入ba结点处于b结点的左边,当且仅当a的生存期先于b的生存期结点和活动是一一对应的源语言问题(5)幻灯片4中程序的活动树源语言问题(6)控制栈控制栈用于保存活跃着的过程栈的内容表示活动树上到根结点的一条路径源语言问题(7)名字与数据对象声明的作用域区分同名程序声明:最接近的嵌套规则inta,b;int*p;intfoo(inta){intb,c;char*p;p=malloc(sizeof(char));b=foo(

5、1);…}作用域:一个声明起作用的程序部分称为该声明的作用域局部和非局部:过程中名字的出现,如果是在该过程的一个声明的作用域内,则这个出现称为局部于该过程源语言问题(8)名字的结合程序中声明的名字和动态数据对象的关系数据对象是保存值的存储单元一个名字可能代表不同的数据对象环境:表示将名字映射到存储单元(即名字的左值)的函数状态:表示将存储单元映射到它所保存的值(即名字的右值)的函数赋值操作只改变状态,但不改变环境结合:如果环境把存储单元s联系到名字x,则称x结合到s,这个联系本身称为x的结合静态概念动态概念过程的定义过程的活动名字的声明名字的

6、结合声明的作用域结合的生存期源语言问题(9)名字结合要考虑的问题过程是否递归当控制从过程的活动返回时,局部名字的值是否要保留过程能否引用非局部的名字过程调用时参数是如何传递的过程是否可以作为参数被传递过程能否作为结果值返回存储区能否在程序控制下动态地分配存储区是否必须显式地释放存储组织(1)运行时内存的划分程序运行时如何使用内存:目标代码的存放目标代码可以存放在静态确定的区域,其长度在编译时即可确定数据对象可静态分配的数据对象,其地址可以编译到目标代码中动态分配控制栈:记录过程活动堆:可以存放动态分配的数据等,但开销要比栈大存储组织(2)活动

7、记录定义:过程的一次执行所需要的信息用一块连续的存储区来管理,这块存储区叫做活动记录或帧一般的活动记录结构如右图,但不是所有的语言或编译器都是如此寄存器的使用活动记录的操作:过程被调用时入栈过程返回时出栈存储组织(3)活动记录的各个域的作用临时数据域:临时变量的存储等局部数据域:局部于过程执行的数据机器状态:保存过程调用前的机器状态信息返回地址可选的访问链:用于非局部数据的访问可选的控制链:指向调用者的活动记录实在参数域:参数个数较少时,可以考虑用寄存器传递,效率高;参数多时用用这个域传递返回值域:用于存放被调用过程返回给调用过程的值,也可以

8、用寄存器返回(效率高,但形式受限制)存储组织(4)过程调用时,每个域的长度都可以确定,大部分域的长度可以在编译时刻确定运行框架安排的设计这个框架的设计要考虑指令集体

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

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

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