编译原理 符号表4.ppt

编译原理 符号表4.ppt

ID:49202574

大小:145.50 KB

页数:13页

时间:2020-02-01

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

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

1、第9章符号表在编译程序中符号表用来存放语言程序中出现的有关标识符的属性信息,属性信息集中反映了标识符的语义特征属性。9.1符号表的作用和地位9.2符号的主要属性及作用9.3符号表的组织9.3符号表的管理9.1符号表的作用和地位(1)收集符号属性。在编译程序中符号表用来存放语言程序中出现的有关标识符的属性信息,符号表中所登记的信息在编译的不同阶段都要用到。(2)语义检查的依据。在语义分析中,符号表所登记的内容将用于语义检查(如检查一个名字的使用和原先的说明是否一致)和产生中间代码。(3)目标代码生成阶段地址分配的依据。在目标代码生

2、成阶段,当对符号名进行地址分配时,符号表是地址分配的依据。对一个多遍扫描的编译程序,不同遍所用的符号表也往往各有不同。因为每遍所关心的信息各有差异。9.2符号的主要属性及作用在整个编译期间,对于符号表的操作大致可归纳为五类:•对给定名字,查询名字是否已在表中;•往表中填入一个新的名字;•对给定名字,访问它的某些信息;•对给定名字,填写或更新它的某些信息;•删除一个或一组无用的项。不同种类的表格所涉及的操作往往也是不同的。上述五个方面只是一些基本的共同操作。符号的主要符号属性(信息)下述几项通常都是需要的:1符号名2符号的数据类型

3、3符号的存储类别4符号的作用域及可视性5符号变量的存储分配信息6符号的其它属性(1)数组内情向量(2)记录结构型的成员信息(3)函数及过程的形参一个符号变量在程序中起作用的范围,称谓它的作用域。一般来说,定义该符号的位置及存储类关键字决定了该符号的作用域。一般来说一个变量的作用域与可视性具有相同的范围,也有不同的地方。如内层变量与外层变量同名时,从理论上说,外层变量的作用域包含了这个内部分程序的,但因为有了内层同名局部变量,则规定内层同名局部变量屏蔽外层同名变量。9.3符号表的组织9.3.1符号表的总体组织第1种:把属性种类完全

4、相同的那些符号组织在一起,构造出表项是分别为等长的多个符号表。第2种:把所有语言中的符号都组织在一张符号表中。组成一张包括了所有属性的庞大的符号表。第3种:折衷方式,是根据符号属性相似程度分类组织成若干张表,每张表中记录的符号都有比较多的相同属性。优点是每个符号表的属性个数和结构完全相同。则表项是等长的,并且表项中的每个属性栏都是有效的,对于单个符号表示来说,这样使得管理方便一致,空间效率高。缺点是一个编译程序将同时管理若干个符号表,增加了总体管理的工作量和复杂度。而且对各类符号共同属性的管理必须设置重复的运行机制。使得符号表的

5、管理显得臃肿。优点是总体管理非常集中单一,且不同种类符号的共同属性可一致地管理和处理。缺点是,由于属性的不同,为完整表达各类符号的全部属性必将出现不等长的表项,以及表项中属性位置的交错重叠的复杂情况,这就极大地增加了符号表管理的复杂度。这种折衷的组织方式在管理复杂性及时空效率方面都取得折衷的效果,并且对复杂性和效率的取舍可由设计者根据自己的经验和要求及目标系统的客观环境和需求进行选择和调整。编译程序按名字的不同种属分别使用许多符号表,如常数表、变量名表、过程名表等等。SUBROUTINEINCWAP(M,N)10K=M+1M=M

6、+4N=KRETURNEND经编译头三阶段后所产生的主要表格有:符号名表SNT;常数表CT;入口名表ENT;标号表LT;四元式表QT符号名表SNTNAMEINFORMATION(1)M哑元,整数,变量(2)N哑元,整数,变量(3)K整数,变量常数表CT值(VALUE) (1)1 (2)4入口名表ENTNAMEINFORMATION(1)INCWAP子程序,入口QT(1)/*记录子程序INCWAP的入口地址*/标号表LTLABLEINFORMATION(1)10QT(4)/*记录了标号10对应的四元式序列号*/9.3.2符号表项的

7、排列符号表作为一个多元组,表中元组的排列组织是构造符号表的重要成分。在编译程序的整个工作过程中,符号表被频繁地用来建立表项,找查表项,填充和引用表项的属性。因此表项的排列组织对该系统运行的效率起着十分重要的作用。在编译程序中,符号表项的组织传统上采用三种构造方法。(1)线性组织(2)排序组织及二分法(3)散列法。9.3.3关键字域的组织符号表的关键字域(段)就是符号名称(1)等长关键字域(段)符号表(2)不等长关键字段符号表---采用关键字池的索引结构。9.3.4其他域的组织(1)等长属性值域组织(2)不等长属性值域组织9.3.

8、5下推链域的组织9.4符号表的管理9.4.1符号表的初始化 9.4.2符号的登录 9.4.3符号的查找 9.4.4符号表中分程序结构层次的管理对于具有分程序型结构的语言程序,不同层次分程序中定义的标识符号具有不同的作用域和不同的可视性规则。通常对于具有分程序结构

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

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

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