编译技术编译原理 (40).pdf
《编译技术编译原理 (40).pdf》由会员分享,可在线阅读,更多相关《编译技术编译原理 (40).pdf(12页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、编译技术运行时存储本节介绍非 局 部 名 字 的 访 问过程内部如何访问过程外部声明的名字?静态作用域无过程嵌套的静态作用域(C语言)有过程嵌套的静态作用域(Pascal语言)动态作用域(Lisp语言)不同的作用域规则下,非局部名字的访问方式有所不同无过程嵌套的静态作用域过程体中的非局部引用可以直接使用静态确定的地址(非局部数据此时就是全局数据)非 局 部 名 字 的 访 问局部变量在栈顶的活动记录中,可以通过base_sp指针来访问无须深入栈中取数据,无须访问链过程可以作为参数来传递,也可以作为结果来返回有过程嵌套的静态作用域非 局 部 名 字 的 访 问过程嵌套深度(教材P.186,图6.
2、14)sor t1readarray2exchange2quicksor t2par tition3变量的嵌套深度:它的声明所在过程的嵌套深度作为该名字的嵌套深度非 局 部 名 字 的 访 问 访问链:用来寻找非局部名字的存储单元sa,xq(1,9)k,v访问链访问链sa,xq(1,3)k,v访问链访问链q(1,9)k,v访问链访问链sa,xq(1,3)k,v访问链访问链q(1,9)k,v访问链访问链p(1,3)i,j访问链访问链e(1,3)访问链访问链sa,xq(1,3)k,v访问链访问链q(1,9)k,v访问链访问链p(1,3)i,j访问链访问链nilnilnilnil访问链总是指向本活动
3、的最近的外围过程的活动记录sort1 readarray 2exchange 2quicksort 2partition 3非 局 部 名 字 的 访 问访问非局部名字的存储单元假定过程p的嵌套深度为np,它引用嵌套深度为na的变量a,na np。如何访问a的存储单元?从栈顶的活动记录开始,追踪访问链np-na次。到达a的声明所在过程的活动记录。访问链的追踪用间接操作就可完成。sa,xq(1,3)k,v访问链访问链q(1,9)k,v访问链访问链nil例如,如果要在Partition中访问变量a,np=3,na=1,因此需要追踪访问链np-na=2次sort1 readarray 2exchan
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译技术编译原理 40 编译 技术 原理 40
限制150内