编译原理课件_15619.pptVIP

  • 4
  • 0
  • 约6.02千字
  • 约 35页
  • 2018-05-28 发布于福建
  • 举报
编译原理课件_15619

* 5.3 栈式动态分配 若嵌套深度为np的过程p 引用嵌套深度为na(na≤np)的变量a,则a的活动记录的访问链地址可以在d[na]中找到,访问非本地变量a的地址信息表示为:(na, Δa) 访问S中的a: dsp=d[1] Δa[dsp] * 5.3 栈式动态分配 如何生成与维护显示表及其访问链 在沿访问链追踪的访问模式中,访问链只需建立,无需撤销,因为活动记录的撤销自然也撤销了访问链。 若采用显示表方式,则当进入和退出活动时,均需对显示表进行维护,以保证对非本地数据的正确访问(弱点)。 活动记录中访问链的右值: 访问链方式:指向最新直接外层活动记录的sp 显示表方式:指向同层次的次新活动记录的sp 调用时: 将d[i]的值保存在新活动记录的访问链中; 置d[i]为新的活动记录。 返回时: 恢复d[i]原来的值,即上述1的逆操作 作业 P259 5.5 * * 5.4 本章小结 本章介绍程序运行时的空间组织,重点是讨论如何通过对过程的静态分析(包括符号表的使用)建立运行环境,以保证程序的正确执行。 过程的动态特性 过程、活动、生存期、控制流; 活动树、控制栈、活动记录; 名字的绑定、环境与状态; 运行时的存储空间组织 内存划分:可执行代码、静态数据区、栈、堆; 活动记录的内容:参数与返回值、控制链、访问链、机器状态、本地数据、临时变量等。 * 5.4 本章小

文档评论(0)

1亿VIP精品文档

相关文档