- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章符号表
• 在编译程序工作的过程中,需要不断收集、
记录和使用源程序中一些语法符号的类型
和特征等相关信息.
• 这些住处一般以表格形式存储于系统中.如
常数表、变量名表、数组名表、过程名表、
标号表等等,统称为符号表。
• 对于符号表组织、构造和管理方法的好坏
会直接影响编译系统的运行效率。
6.1 符号表的组织
• 符号表的组织涉及数据结构方面知识(略)
• 对符号表的访问常见操作有:
(1)判定一给定的名字是否在表中;
(2)在表中填入一个新名字;
(3)访问与给定名字相关的信息;
(4)为给定的名字填入或更新其某些信息;
(5)从表中删除一个或一组名字
• 须指出,在很多程序设计语言中,对名字的作用域有相应的
规定, 即同一名字的标识符,在不同的作用域里标识了不同
的对象,且占用了不同的存储空间.
• 因此,在组织符号表时, 应能反映各个标识符的作用域.
6.2 分程序结构语言符号表的建立
• 分程序结构语言 用其所写的程序单元(program unit)中,
可以再包含嵌套的程序单元,且其中每个程序单元均可定
义属于自己的一组局部变量.如PASCAL中的过程说明,C
中花用括{}号括起来的分程序或复合语句等.
• 程序单元的嵌套导致了变量作用域的嵌套,故把允许名字
作用域嵌套的语言称为具有~的语言. PASCAL是典型的~
之一.
• 虽然C不是~的语言,但其函数定义中的函数体可以是一个
嵌套的分程序,因而也涉及到各个局部变量的作用域.
• 对于嵌套的作用域,同名变量在不同处代表了不同的实体,
因此,需采用分层建立和处理符号表的方式.
PASCAL语言符号表的构造
• 在PASCAL程序中,标识符的作用域是包含说明
(定义)该标识符的最小分程序.即:
①若一标识符在某分程序首部已作说明,则它在整个
分程序内均有定义,除非它在某内层分程序被再次
定义.即它的作用域是整个分程序,是本层分程序及
内层分程序的全局量;
②程序中的标号局限于定义该标号的最小分程序;
③我们可将PASCAL的每个过程视为分程序,其参数
总是局限于相应的过程体内.
查填表方案
• 为了表征一PASCAL程序中各个分程序的嵌套层次关系,
我们可将分程序按其开始符号出现的顺序编号,在扫描源
程序时亦可按这一顺序进行处理.方法是
1. 当在一分程序首部某说明中扫描到一个标识符时,以此
标识符查相应于本层分程序的符号表,若表中已有此项,
则它被重复说明,出错;否则,在表中新登记一项,将该符
号及其相关信息填入.
2. 在分程序执行语句中遇一标识符时,首先查本层表,若找
不到,则查直接外层的符号表,如此等等,若在某层查到,
则可使用相关信息;若遍查所有外层均未找到,则无定义,
出错.
符号表组织方式
• 为实现上述方案,应这样组织符号表:
1. 分层组织符号表的登记项,使各分程序的符号表
登记项连续存放, 而不被内层分程序的符号表分
割;
2. 建立一个 “分程序表”, 用来记录各层分程序符
号表的有关信息.该表有三个域:
①OUTERN 指明该分程序的直接外层分程序的编号;
②ECOUNT 记录该分程序在符号表登记项个数;
③POINTER 指向该分程序在符号表中的起始位置;
PROCEDURE B1;
VAR A,B,C,D:REAL; F
PROCEDURE B2; OU EC POI E
TER OU NTE L1
LABEL L1;
您可能关注的文档
- 浅谈内容社区设计之1内容生产.pdf
- 青铜峡水纹站实习报告.pdf
- 清华材料力学习题详解(范钦珊)第7讲.pdf
- 桥式起重机副起升组织机构机构设计.pdf
- 清华谷源涛MATLAB图像大作业.pdf
- 清华绿色校园建设实践.pdf
- 清华——岩石力学第三讲1(强度).pdf
- 群脉SCRM车传利新零售从构建全渠道用户运营平台开始.pdf
- 绕线[物理]电阻器(KN2W-5% T 51R).pdf
- 全自动软水器设计指导指南.pdf
- 2025年鸡西市麻山区公益性岗位招聘8人(公共基础知识)测试题附答案.docx
- 杭州之江湾股权投资基金管理有限公司招聘参考题库附答案.docx
- 2026江苏辖区农村商业银行常熟农商银行校园招聘200人(公共基础知识)测试题附答案.docx
- 2025年中国石油新疆油田分公司秋季高校毕业生招聘360人(公共基础知识)综合能力测试题附答案.docx
- 2023年攀枝花市直属机关遴选公务员笔试真题汇编附答案解析(夺冠).docx
- 2026广发银行太原分行校园招聘(公共基础知识)测试题附答案.docx
- 2025四川成都医学院招聘事业编制辅导员10人(公共基础知识)测试题附答案.docx
- 2026年毛概期末考试试题库必考题.docx
- 2025年合肥市某国有企业2025年岗位外包招聘(公共基础知识)测试题附答案.docx
- 2026年重庆青年职业技术学院单招(计算机)测试模拟题库附答案.docx
原创力文档


文档评论(0)