- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
§8.5 嵌套过程语言的栈式存储分配 (PASCAL语言);层数:过程定义的嵌套层次;
约定:主程序的层数=0;;;pascal子程序的调用规定:
⑴ 任何子程序都不能调用主程序。
⑵ 任何子程序(包括主程序)可调用自己的直接内
层子程序,但不能调用隔层的内层子程序。(图1)
⑶ 子程序可以调用自己,以及它的任何一层外层子
程序(不包括主程序)。(图2);pascal子程序的调用规定:
⑷ 并列子程序中后说明的可以调用先说明的,而先
说明的不能调用后说明的(除非采用向前引用)。
⑸ 一个子程序可以调用所有与自己的某个外层子程
序并列的子程序(其说明先于这个外层子程序)。;§8.5.2 非局部名字的访问的实现;;;;;;;;;2.实现方案Ⅱ:DISPLAY表(嵌套层次显示表);;;;;b) 子程序可以调用自己,
以及它的任何一层外层子程序
P的D表中,共有nP+1项,
∵ P是P2的外层,
∴ “P的D表前nP项”
与“P2的D表前nP项”相同;;;若有过程:P ,Q ,R
P调用Q ,
Q递归调用自己m次,
Q调用R,
则有:
DQ1 = DP前nQ项+SPQ1
DQ2 = DQ1前nQ项+SPQ2 = DP前nQ项+SPQ2
…
DQm = DQm-1前nQ项+SPQm = DP前nQ项+SPQm
DQm+1 = DQm前nQ项+SPQm+1 = DP前nQ项+SPQm+1
DR = DQm+1前nR项+SPR;;;;;;§8.5.3 主要处理工作1. 过程调用 (红色标注);2.过程进入(蓝色标注);3.数组分配空间
⑴ 对可变数组,计算每维的上限、下限、维长,
填入内情向量;
⑵ 将TOP+1填入数组内情向量的a处(起始地址);
⑶ 设数组大小=M, TOP:=TOP+M ;
4. 引用各种数据的方式
⑴ 参数、局部量、临时单元、内情向量:
设相对数=x,以SP为变址器访问:x[SP];⑵ 数组元素
* 从内情向量查出a,C,维长等,计算出相对数x;
* 变址访问 x[a]
⑶ 非局部量:
设:相对数=x,
所在层数=k,
D表的相对数=d,(d[SP]:活动记录起始地址)
LD R1, (d+k)[SP] (第k层过程的必威体育精装版活动记录的SP)
LD R2, x[R1] (取出值传送到R2);5.过程返回 (与C相同);;;;;;
文档评论(0)