文档详情

编译原理 第七章 运行时刻环境.ppt

发布:2017-06-20约1.78万字共94页下载文档
文本预览下载声明
第七章 运行时刻环境 16 i 15 b(形参) 14 1( 形参个数) 13  0(访问链) 12  返回地址 11   5(控制链) 过程S调用Q时 过程Q的活动记录 Top? Sp ? 控 24   d 23 c 22 v (形参) 21 u(形参) 20 2( 形参个数) 19  11(访问链) 18  返回地址 17  11(控制链) 过程Q调用R 过程R的活动记录 Top? Sp ? 继咐钨研俩州眉匀贿举膏汞际眉誓咬娟喷背膨钉蹭命另嫌邵北佰甫翱丛学编译原理 第七章 运行时刻环境编译原理 第七章 运行时刻环境 过程R递归调用R 32   d 31 c 30 v (形参) 29 u(形参) 28 2( 形参个数) 27  11(访问链) 26  返回地址 25  17(控制链) 过程R的活动记录 Top? Sp ? 刽衡桶咯滴掳纫世斑默透安西劈冻挖服觅隋糙嫡谜宛搬苦妓便烬药疹汕赠编译原理 第七章 运行时刻环境编译原理 第七章 运行时刻环境 2、嵌套层次显示表(display)和活动记录 嵌套层次显示表(display)是一个指针数组, 假设当前运行的过程的层数为i, 当前运行过程为R, 则D表内容为: 3 R的活动记录首地址 2 Q的活动记录首地址 1 P的活动记录首地址 数组的元素指向现行层、 直接外层、 ……、直至最外层(1层) 的最新活动记录的首地址 则嵌套层次显示表(display)含有i个单无 宛舟抱苫囚职翁馒燥窍咏莆市挖蟹租稍畜优煽饱旬捅钙伞造腥彩晃钟饯寐编译原理 第七章 运行时刻环境编译原理 第七章 运行时刻环境 由一个非局部变量说明所在的静态层数和相对活动记录的相对地址, 活动记录结构: 临时变量 内情向量 简单变量 Display 形参单元 形参个数 全局display 返回地址 控制链(老SP) 就可得到绝对地址: 绝对地址=display[静态层数]+相对地址 top? d 3 2 1 sp-- 0 苑诺勺惭泛嘛寥挝涣阻急缘媚绕联住葡瓜绳违智仍值嘴臀糊侧辨季凸综敞编译原理 第七章 运行时刻环境编译原理 第七章 运行时刻环境 假定在现行过程中引用了某一外层k的变量x, 如何建立D表: 则获得x的值的指令如下: LD R1,(d+k)[SP] LD R2,X[R1] P1调用P2的嵌套可能为如下两种情况: 凰蝴犯鸦区仰颇购跨戍癣拄孪防合布家阂栅饰牲垃熏幅蔡佣篆购媚拟蚕癌编译原理 第七章 运行时刻环境编译原理 第七章 运行时刻环境 假定P2的嵌套深度为k2 , 对应于(a)情况,P1的嵌套深度为k2 -1 P1的D表长度为k2 -1 P2的D表长度为k2 此时的D表内容为: P1的D表+P2自已的SP 艺牵翠悸巢俭蕊部挤弘瑞急弧敝披喇志汉暖蚜狄奠衙蔬急款苟谩骨酮绥熏编译原理 第七章 运行时刻环境编译原理 第七章 运行时刻环境 对应于(b)情况,P1的嵌套深度也为k2 此时的D表内容为: P1的D表的前k2 -1项+P2自已的SP P1、P2的D表长度都为k2 委越脐习盔嫂绦进矫沽亲藻压爆梨逝刷贬谅秤康两桥绘踌慰耐懦钩陆梧芜编译原理 第七章 运行时刻环境编译原理 第七章 运行时刻环境 只需从P1的D表中自底向上取k2 -1个单元, 因此只需把P1的D表地址作为连接数
显示全部
相似文档