编译原理笔记(五)之运行环境

1. 过程的动态特性

1.1 过程与活动

  • 活动:过程的每一次运行(或执行)
  • 生存期:任何过程的活动均有有限的生存期
  • 活动树:用来描述控制进入和离开活动方式的树结构

1.2 控制栈与活动记录

  • 控制栈:运行环境的最佳数据结构应该是一个栈
  • 活动记录:栈上的每个节点是每个活动的运行环境

1.3 名字的绑定

  • 绑定:运行时为名字X分配存储空间S,这一过程称为绑定

2.运行时数据空间的组织

2.1 运行时内存的划分与数据空间的存储分配策略

  • 静态分配:简单的分配策略、对语言机制的限制。
  • 栈分配:基于控制栈、可被分配数据的特点、对语言机制的限制、与静态分配的关系。
  • 堆分配:可以任意动态分配和撤销数据空间,用双链表保持可用空间信息,对语言机制不作限制,分配策略的实现较为复杂。

2.2 静态与动态分配简介

  1. 静态分配策略
    在静态分配中,名字在程序编译时与存储空间结合,运行时不再改变,每次过程活动时,过程中的名字映射到同一存储单元。这种性质允许局部名字的值在活动停止后仍能保持,即当控制再次进入活动时,变量的值和控制上一次离开时相同。

  2. 栈分配策略
    栈分配策略是一种动态分配策略,它的基础是活动的控制栈,所有与活动同生存期的数据均可以采用栈分配策略。当活动处在生存期时,相应的数据被分配,生存期结束后,数据被撤销。对于这样的数据,其分配与撤销实际上就是控制栈上活动记录的分配与撤销。

  3. 堆分配策略
    堆分配策略是三种分配策略中最灵活的一种,它对程序设计语言几乎不做什么限制,可以采用静态分配策略或栈分配策略进行分配的数据,均可采用堆分配策略。同时,对于栈分配策略不能分配的数据,堆分配策略也可以分配。
    堆分配策略采用一个双向链表的结构,将所有可以被分配的自由空间链接在链表中,链表中的每个节点指示一个连续可用空间的信息,典型的如可用空间的起始和结束地址。节点的顺序应与可用空间的地址先后一致。

3. 栈式动态分配策略

  • 控制栈中活动记录的具体内容
  • 调用序列与返回序列:调用序列和返回序列的作用、内容;调用序列与返回序列功能的划分;如何设计调用序列与返回序列,以保证控制流的正确转移和活动记录的正确切换。
  • 控制链与访问链:控制链与访问链的作用与区别;控制链用于活动记录的正确切换,体现活动的嵌套关系;访问链用于访问非本地数据,体现过程的嵌套关系;
  • 访问链的不同实现方法:通过访问链访问非本地数据,通过显示表访问非本地数据;两种方法对访问链的维护。
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 编译原理是针对计算机编程语言的研究,目的是将高级语言转化为机器语言并执行。编译原理笔记PDF是一份系统性的学习笔记,包含了编译原理的各个方面。这份学习笔记可以帮助学习者深入了解编译原理,掌握相关的技能。 编译原理笔记PDF通常包含以下几个方面的内容:编译原理的基本概念,编译器的结构与原理,语法分析器的设计与实现,语义分析器的设计与实现,中间代码生成和机器码生成,以及优化技术等。这些内容都是非常重要的编译原理知识点,可以帮助学习者理解编译原理的各个方面,并掌握相关的技术细节。 编译原理笔记PDF还可以提供一些编译原理实战案例,帮助学习者将所学知识应用到实际情况中。实际中有很多编译器与解析器需要我们开发,而这份学习笔记可以准确清晰地指导我们如何设计和开发这些编译器。 总之,编译原理笔记PDF是一份非常有价值的学习资料,可以帮助我们深入了解编译原理,掌握相关的技能,并将这些知识应用到实际情况中。 ### 回答2: 编译原理笔记PDF是一份非常全面的编译原理学习资料,其中详细介绍了编译原理的各个方面,包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等。这些内容不仅涵盖了编译原理的基本理论概念和算法,还提供了许多实际的实现案例和实际开发中的工具。 对于想要学习编译原理的同学来说,编译原理笔记PDF是一个非常好的选择,它可以帮助同学们快速地掌握编译原理的相关知识和技能。通过对这份资料的学习,同学们能够从实际问题和实际应用的角度深入理解编译原理的相关概念和算法,同时掌握一些实用的工具和技术,从而更好地应对工作和学习中的编译问题。 总之,编译原理笔记PDF是一份非常有价值的学习资料,它能够帮助同学们更好地学习和理解编译原理的相关概念和算法,同时提供一些实际的工具和技术供同学们参考和应用。建议有相关需求的同学一定要好好利用这份资料,从中学到更多有用的知识和技能。 ### 回答3: 编译原理笔记 pdf是一本关于编译原理的学习资料,其中涵盖了编译原理的基础知识、重要概念、算法和分析等内容。编译原理是计算机科学中非常重要的一门学科,其研究的是如何将一种高级语言转化为低级语言,并使之在计算机中运行编译原理涵盖的内容很广,包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等等。 编译原理笔记 pdf可以帮助学习者更好地理解和掌握编译原理的知识,尤其是对于那些正在学习编译原理或者准备学习编译原理的人来说,是一本非常有价值的资料。它可以帮助学习者更深入地了解编译原理的基础概念,例如编译器、编译过程、语言处理器等等,同时也可以帮助学习者更准确地理解编译原理中的各种概念和算法,例如文法、自动机、LL(1)分析器、LR分析器等等。 总之,编译原理笔记 pdf是一本非常实用、有价值的学习资料,它对于那些正在学习或者准备学习编译原理的人来说,是一本非常有趣和有用的书籍。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JAVA开发区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值