编译原理之符号表.ppt

编译原理之符号表.ppt

ID:52390270

大小:336.87 KB

页数:28页

时间:2020-04-05

编译原理之符号表.ppt_第1页
编译原理之符号表.ppt_第2页
编译原理之符号表.ppt_第3页
编译原理之符号表.ppt_第4页
编译原理之符号表.ppt_第5页
资源描述:

《编译原理之符号表.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章符号表9.1符号表的作用和地位9.2符号的主要属性及作用9.3符号表的组织9.4符号表的管理在编译程序中符号表用来存放语言程序中出现的有关标识符的属性信息,符号表中所登记的信息在编译的不同阶段都要用到。在语义分析中,符号表所登记的内容将用于语义检查(如检查一个名字的使用和原先的说明是否一致)和产生中间代码。在目标代码生成阶段,当对符号名进行地址分配时,符号表是地址分配的依据。对一个多遍扫描的编译程序,不同遍所用的符号表也往往各有不同。因为每遍所关心的信息各有差异。9.1符号表的作用和地位9.2符号的主要属性及作用几种通常都是需要的。1符号名2符号的类型3符号

2、的存储类别4符号的作用域及可视性5符号变量的存储分配信息6符号的其它属性(1)数组内情向量;(2) 记录结构型的成员信息;(3) 函数及过程的形参。对符号表的操作创建符号表:在编译开始时或进入一个分程序插入表项:在遇到新的标识符声明时进行查询表项:在引用声明过的标识符时进行修改表项:在获得新的语义值信息时进行删除一个或一组无用的项释放符号表的空间:在编译结束前或退出一个分程序9.3符号表的组织多张表:把属性种类完全相同的那些符号组织在一起,构造出表项是分别为等长的多个符号表.一张表:把所有语言中的符号都组织在一张符号表中。组成一张包括了所有属性的庞大的符号表.“折

3、衷”组表:是根据符号属性相似程度分类组织成若干张表,每张表中记录的符号都有比较多的相同属性.9.3.1符号表的总体组织9.3.2符号表项的排列符号表作为一个多元组,表中元组的排列组织是构造符号表的重要成分。在编译程序的整个工作过程中,符号表被频繁地用来建立表项,查找表项,填充和引用表项的属性。因此表项的排列组织对该系统运行的效率起着十分重要的作用。在编译程序中,符号表项的组织传统上采用三种构造方法。即线性法,二分法及散列法。符号表项的组织线性法二分法散列法.............................a............................

4、..........b..........a.......................................d..........c........................................b...............线性表排序组织及二分法散列组织杂凑函数多次散列9.3.3关键字域的组织符号表的关键字域(段)就是符号本身,如保留字、标识符名称等。等长关键字域(段)符号表不等长关键字段符号表---采用关键字池的索引结构。9.3.4其它域的组织等长属性值域组织可以取相应的数据类型表达属性值.用指针或指针链来构造符号之间关系的属性有函数

5、func1(para1,para2,para3)func2()设有一个结构structtag1{...member1...member2structtag2{...member3...member4......member5}member6member7}stv;不等长属性值域的组织符号表的某些属性值是不等长的,例如内情向量(数组的维数、每维的元素个数)属性值是典型的不等长属性值.对于不等长属性值的属性域,一般不把所有属性值都存放在符号表项的某个域内,而另设相关空间存放属性值.设有下列两个数组array1(subscript1,subscript2)array2(sub

6、script3,subscript4,subscript5,subscript6)9.3.5下推链域的组织在程序语言的结构中,分程序的分层结构允许同名标识符具有的生命周期发生重叠。为实现这种同名标识符的语义功能,符号表中需要设立下推链的组织。设有一个程序如下:...inti;..........(1)...func().........(2){...floati;..........(3)...{................(4)inti[5];..........(5)...{...................(6)inti;.....(7)...}...i.

7、....................(8)}...i.......................(9)}9.4符号表的管理符号表的初始化符号表的表长渐增符号表的表长固定符号的登录是否登录登录位置符号的查找符号表中分程序结构层次的管理9.4.4分程序结构的符号表管理对于具有分程序型结构的语言程序,不同层次分程序中定义的标识符号具有不同的作用域和不同的可视性规则。通常对于具有分程序结构的语言可用两种方式组织它们的符号表:一是对每个分程序建立一个独立的分表结构的符号表;一是把各分程序符号组织在一张单表结构的符号表中分表结构的组织管理其基本

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。