编译原理第9篇.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第九章程序运行期间的存储空间组织;本节内容与要点;运行时存储空间的划分;运行时存储空间的划分(续);活动记录;当过程返回(活动结束)时,当前活动记录一般包含如下内容:

连接数据

返回地址

动态链:指向调用该过程前的必威体育精装版活动记录地址的指针。运行时,使运行栈上各数据区按动态建立的次序结成链。链头为栈顶起始位置。

静态链:指向静态直接外层必威体育精装版活动记录地址的指针,用来访问非局部数据。

;

形式单元:存放相应的实在参数的地址或值。

局部数据区:局部变量、内情向量、临时工作单元(如存放对表达式求值的结果)。

指针SP指向现行过程(即必威体育精装版进入工作的那个过程)的活动记录在栈里的起始位置。;活动记录结构图;存储分配策略;一、静态分配策略;适于静态存贮分配的语言必须满足以下条件:

(1)数组的上下界必须是常数;

(2)过程调用不允许递归;

(3)不允许采用动态的数据结构(即在程序运行过程中申请和释放的数据结构)。;由于过程调用不允许递归,数据项的存贮地址就与过程相联系。过程调用所使用的局部数据区可以直接安排在过程的目标代码之后,并把各数据项的存贮地址填入相关的目标代码中,以便在过程运行时访问这个局部数据区。

这里,不存在对存贮区的再利用问题。在执行目标程序时不必进行运行时的存贮空间管理,过程的进入和退出变得极为简单。;例:一个程序段的局部数据区;二、动态分配策略;简单的栈式存贮分配;1、栈式存储分配;C语言的程序结构;C语言程序的存储组织;2、C的活动记录;C过程的活动记录;3.、过程的执行;(1)过程调用---par相应的目标代码;(1)过程调用---call相应的目标代码;(2)过程进入;对每个数组说明,相应的目标指令组将做以下几件工作:

①计算各维的上、下限;

②调用数组空间分配子程序,其参数是各维的上、下限和内情向量单元首地址。

数组空间分配子程序计算并填好内情向量的所有信息,然后在TOP所指的位置之上留出数组所需的空间,并将TOP调整为指向数组区的顶端。

此后,在过程段执行语句的工作过程中,凡引用形式参数、局部变量或数组元素都是以SP为基址进行相对访问的。;进??过程P后所做工作示意;(3)过程返回;过程P返回示意;嵌套过程语言的栈式分配;非局部名字的访问的实现;一、静态链和活动记录;具有静态链的活动记录结构;假定过程的嵌套关系如下:

P;

vara;

Q(b);

vari;

R;

varc,d;

callR;

S;

varc,I;

callQ;

callS;

…;;;例:请见书上P258页嵌套程序。写出递归调用时活动记录的变化。

(程序见下页);.;返回;二、嵌套层次显示表(display)和活动记录;例如,令过程R的外层为Q,Q的外层为P,则过程R运行时display表的内容应为:;

由于过程的层数可以静态确定,因此每个过程的display表的体积在编译时即可知道。

由一个非局部量说明所在的静态层数和相对活动记录的相对地址,就可得到绝对地址:

绝对地址=display[静态层数」+相对地址;活动记录结构;由于每个过程的形式单元的数目在编译时是知道的,因此DISPLAY的相对地址d(相对于活动记录起点)在编译时也是完全确定的。

被调用过程为了建立自己的DISPLAY,则必须知道它的直接外层过程的DISPLAY,这意味着必须把直接外层的DISPLAY地址作为连接数据之一(称为“全局DISPLAY地址”)传送给被调用过程。

于是连接数据变为包含三项:①老SP值,②返回地址,③全局DISPLAY地址。

注意:0层过程(主程序)的DISPLAY只含一项,这一项就是在主程序开始工作时建立的第一个SP值。;2.过程调用、进入和返回;(2)过程进入。在转入过程P后,首先执行和简单栈式存贮分配相同的

您可能关注的文档

文档评论(0)

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

科技工作者

1亿VIP精品文档

相关文档