第9章 符号表.ppt

上传人:s****8 文档编号:67305183 上传时间:2022-12-24 格式:PPT 页数:13 大小:158KB
返回 下载 相关 举报
第9章 符号表.ppt_第1页
第1页 / 共13页
第9章 符号表.ppt_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《第9章 符号表.ppt》由会员分享,可在线阅读,更多相关《第9章 符号表.ppt(13页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、武汉理工大学计算机科学与技术学院武汉理工大学计算机科学与技术学院第第9章章符号表符号表在编译程序中符号表用来存放语言程序中出现在编译程序中符号表用来存放语言程序中出现的有关标识符的属性信息,属性信息集中反映了标的有关标识符的属性信息,属性信息集中反映了标识符的语义特征属性。识符的语义特征属性。9.1符号表的作用和地位符号表的作用和地位9.2符号的主要属性及作用符号的主要属性及作用9.3符号表的组织符号表的组织9.3符号表的管理符号表的管理武汉理工大学计算机科学与技术学院武汉理工大学计算机科学与技术学院9.1符号表的作用和地位符号表的作用和地位(1)收集符号属性。)收集符号属性。在编译程序中符号

2、表用来在编译程序中符号表用来存放语言程序中出现的有关标识符的属性信息,存放语言程序中出现的有关标识符的属性信息,符号表中所登记的信息在编译的不同阶段都要符号表中所登记的信息在编译的不同阶段都要用到。用到。(2)语义检查的依据。)语义检查的依据。在语义分析中,符号表在语义分析中,符号表所登记的内容将用于语义检查(如检查一个名所登记的内容将用于语义检查(如检查一个名字的使用和原先的说明是否一致)和产生中间字的使用和原先的说明是否一致)和产生中间代码。代码。(3)目标代码生成阶段地址分配的依据。)目标代码生成阶段地址分配的依据。在目在目标代码生成阶段,当对符号名进行地址分配时,标代码生成阶段,当对符

3、号名进行地址分配时,符号表是地址分配的依据。对一个多遍扫描的符号表是地址分配的依据。对一个多遍扫描的编译程序,不同遍所用的符号表也往往各有不编译程序,不同遍所用的符号表也往往各有不同。因为每遍所关心的信息各有差异。同。因为每遍所关心的信息各有差异。武汉理工大学计算机科学与技术学院武汉理工大学计算机科学与技术学院9.2符号的主要属性及作用符号的主要属性及作用在在整整个个编编译译期期间间,对对于于符符号号表表的的操操作作大大致致可可归纳为五类:归纳为五类:对给定名字,查询名字是否已在表中;对给定名字,查询名字是否已在表中;往表中填入一个新的名字;往表中填入一个新的名字;对给定名字,访问它的某些信息

4、;对给定名字,访问它的某些信息;对给定名字,填写或更新它的某些信息;对给定名字,填写或更新它的某些信息;删除一个或一组无用的项。删除一个或一组无用的项。不不同同种种类类的的表表格格所所涉涉及及的的操操作作往往往往也也是是不不同同的的。上述五个方面只是一些基本的共同操作。上述五个方面只是一些基本的共同操作。武汉理工大学计算机科学与技术学院武汉理工大学计算机科学与技术学院符号的主要符号属性符号的主要符号属性(信息)信息)下述几项通常都是需要的:下述几项通常都是需要的:1符号名符号名 2符号的数据类型符号的数据类型 3符号的存储类别符号的存储类别 4符号的作用域及可视性符号的作用域及可视性 5符号变

5、量的存储分配信息符号变量的存储分配信息6符号的其它属性符号的其它属性(1)数组内情向量)数组内情向量(2)记录结构型的成员信息)记录结构型的成员信息(3)函数及过程的形参函数及过程的形参一个符号变量在程序中一个符号变量在程序中起作用的范围,称谓它起作用的范围,称谓它的作用域。一般来说,的作用域。一般来说,定义该符号的位置及存定义该符号的位置及存储类关键字决定了该符储类关键字决定了该符号的作用域。号的作用域。一般来说一个变量的作一般来说一个变量的作用域与可视性具有相同用域与可视性具有相同的范围,也有不同的地的范围,也有不同的地方。如内层变量与外层方。如内层变量与外层变量同名时,从理论上变量同名时

6、,从理论上说,外层变量的作用域说,外层变量的作用域包含了这个内部分程序包含了这个内部分程序的,但因为有了内层同的,但因为有了内层同名局部变量,则规定内名局部变量,则规定内层同名局部变量屏蔽外层同名局部变量屏蔽外层同名变量。层同名变量。武汉理工大学计算机科学与技术学院武汉理工大学计算机科学与技术学院9.3符号表的组织符号表的组织9.3.1符号表的总体组织符号表的总体组织第第1种:种:把属性种类完全相同的那些符号组织在一把属性种类完全相同的那些符号组织在一起,构造出表项是分别为等长的多个符号表起,构造出表项是分别为等长的多个符号表。第第2种:种:把所有语言中的符号都组织在一张符号表把所有语言中的符

7、号都组织在一张符号表中。组成一张包括了所有属性的庞大的符号表。中。组成一张包括了所有属性的庞大的符号表。第第3种:折衷方式,是根据符号属性相似程度分类种:折衷方式,是根据符号属性相似程度分类组织成若干张表,每张表中记录的符号都有比较组织成若干张表,每张表中记录的符号都有比较多的相同属性。多的相同属性。优点是每个符号表的属性个优点是每个符号表的属性个数和结构完全相同。则表项数和结构完全相同。则表项是等长的,并且表项中的每是等长的,并且表项中的每个属性栏都是有效的,对于个属性栏都是有效的,对于单个符号表示来说,这样使单个符号表示来说,这样使得管理方便一致,空间效率得管理方便一致,空间效率高。缺点是

8、一个编译程序将高。缺点是一个编译程序将同时管理若干个符号表,增同时管理若干个符号表,增加了总体管理的工作量和复加了总体管理的工作量和复杂度。而且对各类符号共同杂度。而且对各类符号共同属性的管理必须设置重复的属性的管理必须设置重复的运行机制。使得符号表的管运行机制。使得符号表的管理显得臃肿。理显得臃肿。优点是总体管理非常集中单一,优点是总体管理非常集中单一,且不同种类符号的共同属性可且不同种类符号的共同属性可一致地管理和处理。缺点是,一致地管理和处理。缺点是,由于属性的不同,为完整表达由于属性的不同,为完整表达各类符号的全部属性必将出现各类符号的全部属性必将出现不等长的表项,以及表项中属不等长的

9、表项,以及表项中属性位置的交错重叠的复杂情况,性位置的交错重叠的复杂情况,这就极大地增加了符号表管理这就极大地增加了符号表管理的复杂度。的复杂度。这种折衷的组织方式在管理复这种折衷的组织方式在管理复杂性及时空效率方面都取得折杂性及时空效率方面都取得折衷的效果,并且对复杂性和效衷的效果,并且对复杂性和效率的取舍可由设计者根据自己率的取舍可由设计者根据自己的经验和要求及目标系统的客的经验和要求及目标系统的客观环境和需求进行选择和调整。观环境和需求进行选择和调整。武汉理工大学计算机科学与技术学院武汉理工大学计算机科学与技术学院编译程序按名字的不同种属分别使用许多符号表,如常数编译程序按名字的不同种属

10、分别使用许多符号表,如常数表、变量名表、过程名表等等。表、变量名表、过程名表等等。SUBROUTINEINCWAP(M,N)10KM1MM4NKRETURNEND经编译头三阶段后所产生的主要表格有:经编译头三阶段后所产生的主要表格有:符号名表符号名表SNT;常数表常数表CT;入口名表入口名表ENT;标号表标号表LT;四元式表四元式表QT武汉理工大学计算机科学与技术学院武汉理工大学计算机科学与技术学院符号名表符号名表SNTNAMEINFORMATION(1)M哑元,整数,变量哑元,整数,变量(2)N哑元,整数,变量哑元,整数,变量(3)K整数,变量整数,变量常数表常数表CT值(值(VALUE)(

11、1)1(2)4武汉理工大学计算机科学与技术学院武汉理工大学计算机科学与技术学院入口名表入口名表ENTNAMEINFORMATION(1)INCWAP子程序,入口子程序,入口QT(1)/*记录子程序记录子程序INCWAP的入口地址的入口地址标号表标号表LTLABLEINFORMATION(1)10QT(4)/*记录了标号记录了标号10对应的四元式序列号对应的四元式序列号武汉理工大学计算机科学与技术学院武汉理工大学计算机科学与技术学院9.3.2符号表项的排列符号表项的排列符符号号表表作作为为一一个个多多元元组组,表表中中元元组组的的排排列列组组织织是是构构造造符符号号表表的的重重要要成成分分。在在

12、编编译译程程序序的的整整个个工工作作过过程程中中,符符号号表表被被频频繁繁地地用用来来建建立立表表项项,找找查查表表项项,填填充充和和引引用用表表项项的的属属性性。因因此此表表项项的的排排列列组组织织对对该该系统运行的效率起着十分重要的作用。系统运行的效率起着十分重要的作用。在在编编译译程程序序中中,符符号号表表项项的的组组织织传传统统上上采采用用三三种构造方法。种构造方法。(1)线性组织)线性组织(2)排序组织及二分法)排序组织及二分法(3)散列法。)散列法。武汉理工大学计算机科学与技术学院武汉理工大学计算机科学与技术学院9.3.3关键字域的组织关键字域的组织符号表的关键字域(段)就是符号名

13、称符号表的关键字域(段)就是符号名称(1)等长关键字域(段)符号表)等长关键字域(段)符号表(2)不不等等长长关关键键字字段段符符号号表表-采采用用关关键键字字池池的索引结构。的索引结构。9.3.4其他域的组织其他域的组织(1)等长属性值域组织)等长属性值域组织(2)不等长属性值域组织)不等长属性值域组织9.3.5下推链域的组织下推链域的组织武汉理工大学计算机科学与技术学院武汉理工大学计算机科学与技术学院9.4符号表的管理符号表的管理9.4.1符号表的初始化符号表的初始化9.4.2符号的登录符号的登录9.4.3符号的查找符号的查找9.4.4符号表中分程序结构层次的管理符号表中分程序结构层次的管

14、理对于具有分程序型结构的语言程序,对于具有分程序型结构的语言程序,不同层次分程序中定义的标识符号具有不同不同层次分程序中定义的标识符号具有不同的作用域和不同的可视性规则。通常对于具的作用域和不同的可视性规则。通常对于具有分程序结构的语言可用两种方式组织它们有分程序结构的语言可用两种方式组织它们的符号表:的符号表:一是对每个分程序建立一个独一是对每个分程序建立一个独立的分表结构的符号表;一是把各分程序符立的分表结构的符号表;一是把各分程序符号组织在一张单表结构的符号表中号组织在一张单表结构的符号表中 武汉理工大学计算机科学与技术学院武汉理工大学计算机科学与技术学院分表结构的组织管理分表结构的组织

15、管理其基本思想是,每当编译程序扫描到一个分程其基本思想是,每当编译程序扫描到一个分程序结构开始时,为该分程序建立一张符号表,在该序结构开始时,为该分程序建立一张符号表,在该分程序中定义的标识符,都被登录在该符号表中。分程序中定义的标识符,都被登录在该符号表中。而当编译程序扫描到一个分程序的结束时,编译程而当编译程序扫描到一个分程序的结束时,编译程序释放为该分程序所建立的符号表。这种符号表的序释放为该分程序所建立的符号表。这种符号表的分表结构与源程序的分程序层次结构一一对应分表结构与源程序的分程序层次结构一一对应。武汉理工大学计算机科学与技术学院武汉理工大学计算机科学与技术学院单表结构的组织管理:单表结构的组织管理:其其基基本本思思想想是是,所所有有分分程程序序中中定定义义的的标标识识符符都都集集中中在在单单张张符符号号表表中中。为为了了实实现现分分程程序序构构造造中中标标识识符符的的作作用用域域和和可可视视性性规规则则的的要要求求,在在符符号号表表中中可可设设立立一一个个属属性性域域用用来来登登录录符符号号所所在在分分程程序序的的层次层次进进入入分分程程序序时时,层层次次要要增增加加一一层层.在在退退出出一一个个分分程程序序时时,层层次次降降低低一一层层,且且需需要要把把符符号号表表中中,所有在退出的分程序中登录的符号项清除。所有在退出的分程序中登录的符号项清除。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com