编译原理第九章习题答案.pptVIP

  • 552
  • 0
  • 约1.1万字
  • 约 47页
  • 2016-12-11 发布于重庆
  • 举报
3)数据对象空间分配 SP = TOP + 1(定义新的SP) 1[SP] = 返回地址 (保护返回地址) TOP = TOP + L定义新的TOP (L为过程P的活动记录所需的单元数,在处理说明语句时可以计算出来) 4)过程的返回(过程的活动记录出栈,同时恢复栈顶活动记录的TOP和SP) 如果有返回值(函数),将返回值传递到每个特定寄存器中。TOP = SP – 1SP = 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时

文档评论(0)

1亿VIP精品文档

相关文档