- 3
- 0
- 约1.21万字
- 约 47页
- 2019-10-24 发布于湖北
- 举报
3)数据对象空间分配 SP = TOP + 1 (定义新的SP) 1[SP] = 返回地址 (保护返回地址) TOP = TOP + L 定义新的TOP (L为过程P的活动记录所需的单元数,在处理说明语句时可以计算出来) 4)过程的返回(过程的活动记录出栈,同时恢复栈顶活动记录的TOP和SP) 如果有返回值(函数),将返回值传递到每个特定寄存器中。 TOP = SP – 1 SP = 0[SP] x = 2[TOP] UJ 0[x] (UJ为无条件转移语句,按x中的返回地址实行变址转移) * 本章教学线索 1 目标程序运行时的活动 2 运行时存储器的划分 3 静态存储分配 4 简单栈式存储分配 5 嵌套过程语言的栈式实现 5.1 嵌套过程语言非局部名字访问的实现 5.2 参数传递的实现 6 堆式动态存储 * 5 嵌套过程语言的栈式实现 语言要求:过程不仅允许递归调用,还允许过程进行嵌套定义。 存储分配的实现:采用栈式存储分配,对于运行时的局部名和形参完全可以采用简单栈式存储分配,由于允许过程嵌套定义,因此对非局部变量的访问需要单独处理,可以采用:静态链或显示表(Display)来实现。 嵌套层次:记录过程在定义时所在的层数。约定主程序的层数为0。如果过程P的直接外层Q的层数为i,则P的层数就为i+1。在实现时,采用一个计数器,遇到过程定义proc Begin时,计数器增加1,遇到过程结束proc end时,计数器减1。将过程的层数作为过程名的一个属性记录在符号表中。 * 5.1 嵌套过程语言非局部名字访问的实现 1)静态链和活动记录 在活动记录中增加一个域,存储指向直接外层的最新活动记录的地址,这样形成的链称为静态链。它表明过程定义时的嵌套关系。 活动记录中存储老SP形成的链称为动态链,它表明了过程活动时的调用关系。 活动记录的结构: 临时单元 内情向量 简单变量 形式单元 形参个数 静态链 返回地址 动态链(老SP) SP TOP 对于非局部变量的返回可以沿静态链进行访问。 * program P; var a,x integer; procedure Q(b:integer); var i:integer; procedure R(u:integer,v:integer); var c,d:integer; begin if u = 1 then R(u+1,v) v=(a+c)*(b-d); end {R} begin R(1,x); end {Q} procedure S; var c, i:integer ; begin a = 1; Q(c); end{S} begin a=0; S; end 0 1 1 2 24 d 23 c 22 v(形参) 21 u(形参) 20 2(形参个数) 19 11 18 返回地址 17 11 16 i 15 b(形参) 14 1(形参个数) 13 0 12 返回地址 11 5 10 i 9 c 8 0 7 0 6 返回地址 5 0 4 x 3 a 2 0 1 返回地址 0 0 P S Q R 过程Q调用R时活动记录情况 * 2)嵌套层次显示表和活动记录 在进入一个过程后,在建立其活动记录区的同时建立一张嵌套层次表display,该表给出了过程的嵌套关系,如果该过程的嵌套层次为i,则它的display表就包含i+1个单元(假设主过程的层次为0),display本身是一个栈。 由于过程的层数可以静态确定,因此每个过程的display表的体积在编译时可以确定,可以将display表作为活动记录的一部分,置于形式单元的上端。 例如:R的外层是Q,Q的外层是P,则R运行时display表的情况: R现行活动记录地址 Q的最新活动记录地址 P的活动记录地址 * 对于非局部变量的绝对地址就为: 绝对地址 = display[静态层次] + 相对地址 (非局部变量所在的静态层次可以在编译时处理说明语句时确定,可以记录在符号表中) 在活动记录中,display表的相对位置d是确定的,因此,在现行过程中引用了某一外层过程(k层)的变量x,可以用以下指令获取x的值: LD R1,(d+k)[SP] /*获取x所在的最新活动记录的SP值*/ LD R2,x
您可能关注的文档
- 细胞器——系统内的分工合作复习.ppt
- 细胞器之间的协调配合和细胞的生物膜系统上课版.ppt
- 细胞器_讲课稿.ppt
- 细胞器及生物膜系统一轮复习.ppt
- 细胞对电离辐射反应.ppt
- 细胞有丝、减数分裂.ppt
- 细胞呼吸(需氧呼吸).ppt
- 细胞增殖讲课[1].ppt
- 细胞核---系统的控制.ppt
- 细胞器----系统内的分工合作.ppt
- (正式版)DB33∕T 2574-2023 《 数字乡村建设规范 》.pdf
- (正式版)DB33∕T 2554-2022 《“GM2D”进口商品数据元 》.pdf
- (正式版)DB33∕T 2573-2023 《 助残护理员照护服务规范 》.pdf
- (正式版)DB33∕T 2542-2022 《餐饮计量规范 》.pdf
- (正式版)DB33∕T 2558.1-2022 《林下套种菌药生产技术规程 第1部分:大球盖菇》.pdf
- (正式版)DB33∕T 2558.3-2022 《林下套种菌药生产技术规程 第3部分:羊肚菌 》.pdf
- (正式版)DB33∕T 2575-2023 《 野生猛禽和涉禽安全救护技术规程 》.pdf
- (正式版)DB33∕T 2544-2022 《森林人家建设规范》.pdf
- (正式版)DB33∕T 310010-2021 《沿海防护林生态效益监测与评估技术规程》.pdf
- (正式版)DB33∕T 3004.1-2015 《农村厕所建设和服务规范 第1部分:农村改厕管理规范 》.pdf
最近下载
- 《江苏省建筑施工现场专职安全生产管理人员安全日志(试行)》.docx VIP
- 高速公路建设项目工程量清单及计量规则.pdf VIP
- 2025年“地球小博士”全国地理科普知识大赛历年参考题库含答案详解.docx VIP
- 小学三年级上册写字表字帖(可打印).pdf VIP
- 人教版三年级上册数学期末卷-小学数学三年级上册-期末复习试卷-人教版---.docx VIP
- 公路养护工程量清单计量规则公路养护工程量清单计量规则.doc VIP
- 金属风管支架重量计算表.xls VIP
- 南通市小学语文五年级上册期末试题(含答案).doc
- 幼儿园大班10以内加减法100题.doc VIP
- 绿色建筑材料采购管理制度流程.docx VIP
原创力文档

文档评论(0)