哈工大编译原理第7章

哈工大编译原理第7章

ID:46125414

大小:963.00 KB

页数:91页

时间:2019-11-21

哈工大编译原理第7章_第1页
哈工大编译原理第7章_第2页
哈工大编译原理第7章_第3页
哈工大编译原理第7章_第4页
哈工大编译原理第7章_第5页
资源描述:

《哈工大编译原理第7章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第七章运行时刻环境1序7.1源语言中的一些问题7.2存储组织7.3运行时刻存储分配策略7.4非局部名字的访问7.5符号表2序计算环境运行时的环境计算目标代码映射源程序源程序中的名字(常量,变量)目标机存储空间。它受命于源程序的执行语义。源程序由一组过程按某种规则组成。过程的一次执行称作一次活动.3在过程的语句序列执行之前,过程中访问的对象构成此过程的运行环境,由运行支持程序组织好。PROCEDUREsub(x,y:real);VARi,j:integer;a:ARRAY[1..5]OFreal;e,f:real;

2、BEGINf:=e+i*j;END;4f符号表名字形类型偏移量活动记录布局=>老SP(sp,0)x形real3返回地址(sp,1)y形real42(sp,2)(sp,3)(sp,5)iint5i(sp,9)jint9j(sp,13)aarray13a(sp,53)eereal53(sp,61)freal61(sp,4)xyt1t2t3(sp,62)(sp,63)(sp,64)5中间代码*ijt1*(sp,20)(sp,21)(sp,29)+et1t2+(sp,27)(sp,29)(sp,30)itort2–t

3、3itor(sp,30)–(sp,31):=t3–f:=(sp,31)–(sp,28)确定活动记录中局部数据的地址:假设sp标记一个活动记录的开始的位置,dx表示x的地址相对于sp的偏移量。那么,x在过程的目标代码中的地址可写成dx(sp)67.1有关源程序中的一些问题目的:构造运行程序的策略和方法1.1过程1.2活动树1.3控制栈1.4说明的作用域1.5名字的绑定1.6参数传递1.7构造运行程序和源程序有关的一些问题71.1过程构成源程序的两个过程行文,源程序由一组过程组成,不同的程序设计语言,由过程构成源程序的

4、方法不同。要么是嵌套的,要么是平行的。81.2活动树程序执行期间的控制流:1.程序执行的控制是顺序的;2.过程的每一次执行都是从过程体的开头开始,并最终把控制返回到紧接着该过程被调用点的后面。9一个过程p的一次活动的生存期:mainP其中包括执行过程p所调用的过程的执行时间,以及这些过程所调用的过程的执行时间,如此等等。在该过程体第一步到最后一步之间的语句的执行时间。p10这种活动生存期的嵌套性质可以通过在每一个过程中插入两个打印语句来加以跟踪。2、如果a和b是两个过程活动,那么它们的生存期要么是并列的,要么是嵌套

5、的。控制流的特点:1、每当控制流从过程p的活动进入到过程q的活动中后,它将返回到过程p的同一次活动中。11programsort(input,output);vara:array[0..10]ofinteger;procedurereadarray;vari:integer;begin…end;functionpartition(y,z:integer):integer;vari,j,x,v:integer;begin…end;procedurequicksort(m,n:integer);vari:integer

6、;beginend…end;begin…end.程序见P254页12执行开始enterreadarrayleavereadarrayenterquicksort(1,9)enterpartition(1,9)leavepartition(l,9)enterquicksort(1,3)................    leavequicksort(1,3)enterquicksort(5,9)................    leavequicksort(5,9)leavequicksort(1,9)执行

7、结束这是递归调用13递归:一个过程是递归的,如果同一过程的一次新的活动可以在前面活动结束以前开始。活动树:在一棵活动树中:2.根结点代表主程序的活动;3.代表a的结点是b结点的父结点当且仅当控制从活动a进入活动b;4.结点a在结点b的左边当且仅当a的生存期发生在b的生存期之前用一颗树来描绘控制进入和离开活动的途径。这样的树称作活动树。1.每一个结点代表一个过程的活动;14srq(1,9)p(1,9)q(1,3)p(1,3)q(1,0)q(2,3)p(2,3)q(2,1)q(3,3)q(5,9)p(5,9)q(5,5

8、)q(7,9)p(7,9)q(7,7)一棵活动树假设I=4假设I=1假设I=1假设I=2假设I=6假设I=8假设I=8q(9,9)15结论:且每一个活动只有一个结点表示;当控制进入某一个活动时,可以直接说,控制在这个结点上。一个结点代表一个唯一的活动,161.3控制栈因此,用一个栈保存过程活动的生存踪迹;程序执行的控制流对应于从根开始,按先根次序遍历活动树.

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

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

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