运行时存储空间组织.ppt

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理 嵌套过程语言的栈式实现 PASCAL 非局部名字的访问的实现 静态链和活动记录 嵌套层次显示表display 过程调用、过程进入、过程返回 编译原理 参数个数 返回地址 形式单元 临时单元 内情向量 局部变量 老SP Display 表 全局Diaplay 1. 每个par Ti(i=1,2,…n)可直接翻译成如下指令: (i+4)[TOP]:= Ti (传值) (i+4)[TOP]:=addr(Ti ) (传地址) 过程调用、过程进入、过程返回 TOP? SP ? 调用过程的 活动记录 …… 形式单元 编译原理 参数个数 返回地址 形式单元 临时单元 内情向量 局部变量 老SP Display 表 全局Diaplay 2. call P,n 被翻译成: 1[TOP]:=SP (保护现行SP) 3[TOP]:=SP+d (传送现行display地址) 4[TOP]:=n (传递参数个数) JSR (转子指令) 过程调用、过程进入、过程返回 TOP? SP ? 调用过程的 活动记录 …… 老SP 全局Diaplay 参数个数 编译原理 3. 转进过程P后,首先定义新的SP和TOP,保存返回地址。 4. 根据全局display建立现行过程的display:从全局display表中自底向上地取l个单元,在添上进入P后新建立的SP值就构成了P的display。 参数个数 返回地址 形式单元 临时单元 内情向量 局部变量 老SP Display 表 全局Diaplay TOP? SP ? 调用过程的 活动记录 …… 返回地址 Display 表 编译原理 5. 过程返回时,执行下述指令: TOP:=SP-1 SP:=0[SP] X:=2[TOP] UJ 0[X] 参数个数 返回地址 形式单元 临时单元 内情向量 局部变量 老SP Display 表 全局Diaplay TOP? SP ? 调用过程的 活动记录 …… TOP? SP ? 编译原理 嵌套过程语言的栈式实现 PASCAL 非局部名字的访问的实现 静态链和活动记录 嵌套层次显示表display 过程调用、过程进入、过程返回 编译原理 三、上面两种方法的折中——PL编译程序 建立一个总的运行时的diaplay表(而不是每个过程的活动记录中都有一个),它记录正被调用执行的过程及其所有外层过程的活动记录的起始地址。通过这个diaplay访问数据。 在各过程活动记录之间保留一条静态链SL,它主要用于由层次大的过程调用层次小的过程后返回时,恢复调用前的display内容。(这时,调用返回后,执行一条UDIS指令) 编译原理 PL中每个过程的活动记录结构: 1) 简单局部变量 2) 连接数据 返回地址RA 动态链DL,指向过程调用者的活动记录起始地址 静态链SL, 指向过程的直接外层过程活动记录起始地址 静态链指针SL 形式单元 局部变量 数组 SP? 0 1 2 返回地址RA TOP? 动态链指针DL 3 编译原理 program P; var x,y: integer; ... procedure P1; var i,j:integer; ... procedure P11(a,b:integer); ... begin ... end; begin ... call P11(i,j); ... end; procedure P2; var s,t:integer; ... procedure P21; begin ... end; begin ... call P1 ... end; begin ... call P2; ... end. 编译原理 0 1 2 x 3 y 4 RA 5 SL(0) 6 DL(0) 7 s 8 t 9 0 1 5 2 主程序P ?过程 P2 ?过程 P1 ?过程 P11 Display P的活动记录 P2的活动记录 RA 10 SL(0) 11 DL(5) 12 i 13 j 14 10 2 P1的活动记录 RA 15 SL(10) 16 DL(10) 17 a 18 b 19 P11的活动记录 15 3

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档