ImageVerifierCode 换一换
格式:PPT , 页数:28 ,大小:141.50KB ,
资源ID:319687      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-319687.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(编译原理-之-符号表.ppt)为本站会员(无敌)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

编译原理-之-符号表.ppt

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

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

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

4、本身,如保留字、标识符名称等。等长关键字域(段)符号表 不等长关键字段符号表-采用关键字池的索引结构。,9.3.4 其它域的组织,等长属性值域组织可以取相应的数据类型表达属性值.用指针或指针链来构造符号之间关系的属性有函数 func1 (para1, para2, para3)func2 ( ),设有一个结构struct tag1 .member1 .member2struct tag2.member3 .member4. .member5member6member7stv;,不等长属性值域的组织,符号表的某些属性值是不等长的,例如内情向量(数组的维数、每维的元素个数)属性值是典型的不等长属性

5、值.对于不等长属性值的属性域,一般不把所有属性值都存放在符号表项的某个域内,而另设相关空间存放属性值.设有下列两个数组array1 (subscript1, subscript2)array2 (subscript3, subscript4, subscript5, subscript6),9.3.5 下推链域的组织,在程序语言的结构中,分程序的分层结构允许同名标识符具有的生命周期发生重叠。为实现这种同名标识符的语义功能,符号表中需要设立下推链的组织。,设有一个程序如下:.int i; .(1).func() .(2) . float i; .(3) . . .(4)int i5; .(5).

6、 . .(6)int i; .(7). .i .(8) .i .(9),9.4 符号表的管理,符号表的初始化符号表的表长渐增符号表的表长固定符号的登录是否登录登录位置符号的查找符号表中分程序结构层次的管理,9.4.4 分程序结构的符号表管理,对于具有分程序型结构的语言程序,不同层次分程序中定义的标识符号具有不同的作用域和不同的可视性规则。通常对于具有分程序结构的语言可用两种方式组织它们的符号表:一是对每个分程序建立一个独立的分表结构的符号表;一是把各分程序符号组织在一张单表结构的符号表中,分表结构的组织管理,其基本思想是,每当编译程序扫描到一个分程序结构开始时,为该分程序建立一张符号表,在该分程序中定义的标识符,都被登录在该符号表中。当编译程序扫描到一个分程序的结束时,编译程序释放为该分程序所建立的符号表。这种符号表的分表结构与源程序的分程序层次结构一一对应,单表结构的组织管理,其基本思想是,所有分程序中定义的标识符都集中在单张符号表中。为了实现分程序构造中标识符的作用域和可视性规则的要求,在符号表中可设立一个属性域用来登录符号所在分程序的层次进入分程序时,层次要增加一层.在退出一个分程序时,层次降低一层,且需要把符号表中,所有在退出的分程序中登录的符号项清除。,作业:,符号表的用是什么?符号表的组织方式有哪几种?如何建立和查找符号表?,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报