运行时刻环境 6.1 源语言中的一些问题6.2 存储组织6.3 运.pptVIP

  • 0
  • 0
  • 约6.3千字
  • 约 41页
  • 2019-01-30 发布于江苏
  • 举报

运行时刻环境 6.1 源语言中的一些问题6.2 存储组织6.3 运.ppt

运行时刻环境 6.1 源语言中的一些问题6.2 存储组织6.3 运

* * 第六章 运行时刻环境 序 6.1 源语言中的一些问题 6.2 存储组织 6.3 运行时刻存储分配策略 6.4 非局部名字的访问 6.5 参数传递 6.6 符号表 序 计算环境 运行时的环境 计算 目标代码 源程序中的名字(常量,变量)?目标机存储空间。它受命于源程序的执行语义。 源程序由一组过程按某种规则组成。过程的一次执行称作一次活动,在过程的语句序列执行之前,过程中访问的对象构成此过程的运行环境,由运行支持程序组织好。编译程序根据如何组织运行环境而生成目标代码。 映射 源程序 6.1有关源程序中的一些问题 目的: 构造运行程序的策略和方法 6.1.1 过程 6.1.2 活动树 6.1.3 控制栈 6.1.4 说明的作用域 6.1.5 名字的绑定 6.1.6 构造运行程序和源程序有关的 一些问题 6.1.1 过程 源程序由一组过程组成,不同的程序设计语言,由过程构成源程序的方法不同。 构成源程序的两个过程行文,要么是嵌套的,要么是不相交的。 program sort(input,output); ? ?var a : array[0..10] of integer; ? ??procedure readarray; ? ?????var i : integer; ? ??????begin … ??end; ? ?function partition (y ,z : integer ):integer; ? ??????var i,j ,x,v: integer; ? ?????begin ?… ? end; ? ?procedure quicksort(m,n : integer); ??????var i : integer; ? ??????begin ???end ?? … ???end; ????begin ??? … ? end. 6.1.2 活动树 ? ? 程序执行期间的控制流: ????1.程序执行的控制是顺序的; ????2.过程的每一次执行都是从过程体的开头 开始,并最终把控制返回到紧接着该过 程被调用点的后面。 ???过程的一次活动: 过程体的每一次执行。 一个过程p的一次活动的生存期:在该过程体的执行中的第一步和最后一步之间的一序列步骤的执行时间,其中包括执行过程p所调用的过程的执行时间,以及这些过程所调用的过程的执行时间,如此等等。 ????特点: 每当控制流从过程p的活动进入到过程q的 活动中后,它将返回到过程p的同一次活动 中。 ???? 如果a和b是两个过程活动,那么它们的生 存期要么是不重叠的,要么是嵌套的。 ????这种活动生存期的嵌套性质可以通过在每 一个过程中插入两个打印语句来加以说明。 执行开始 ??? enter readarray ??? leave readarray ?? ? enter quicksort(1,9) ??? enter partition(1,9) ??? leave partition(l,9) ??? enter quicksort(1,3) ??? ................ ??? leave quicksort(1,3) ??? enter quicksort(5,9) ??? ................ ??? leave quicksort(5,9) ??? leave quicksort(1,9) ?执行结束 ? 一个过程是递归的,如果同一过程的一次新的活动可以在前面活动结束以前开始。 用一颗树来描绘控制进入和离开活动的途径。这祥的树称作活动树。在一棵活动树中: ???1. 每一个结点代表一个过程的活动; ???2. 根结点代表主程序的活动; ???3. 代表a的结点是b结点的父结点当且仅当控 制从活动a进入活动b; ???4. 结点a在结点b的左边当且仅当a的生存期 发生在b的生存期之前。 用活动树

文档评论(0)

1亿VIP精品文档

相关文档