第九章 编译原理 符号表8.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编 译 原 理 第九章 符号表 在编译程序工作的过程中,需要不断收集、记录和使用源程序中一些语法符号的类型和特征等相关信息。这些信息一般以表格形式存储于系统中。如常数表、变量名表、数组名表、过程名表、标号表等等,统称为符号表。 对于符号表组织、构造和管理方法的好坏会直接影响编译系统的运行效率。 第九章 符号表 一、符号表的作用和功能 收集符号属性 上下文语义的合法性检查的依据 作为目标代码生成阶段地址分配的依据 例:C语言程序段:int a; a=1; MOV #1,R0 MOV R0,mema 词法分析:a是一个单词; 语法分析:a出现在一条变量声明语句和一条赋值语句中; 语义分析:a是一个整形变量,并分配地址。 二、符号表的内容 标识符的名字 与标识符有关的信息 类型信息(包括种类和属性) 地址码 层次信息 行号信息 …… 二、符号表的内容 例:Pascal语言的名字信息表nametab 名字标识符 名字种类,可以是常量(constant)、变量(variable)、类型(type)、过程(procedure) 名字所在的程序体的静态层次。规定主程序的层次为1,主程序中定义的层次为2,依次类推 名字的类型,类型有整型(ints)、字符型(chars)、布尔型(bool)、数组(arrays),对于无类型的名字填入notype 一个布尔量,用于标明名字是否为变量形参名,当名字是否为变量形参名时填入false,其他情况填入true或不填 当名字为数组类型或数组变量名时,ref指向该数组在数组信息表中的位置;当名字为过程名时,ref指向该过程在程序体表(btab)中的位置;其他情况ref为0 adr, 当名字为变量名时(包括形参,存入该变量(或形参)在相应活动记录中分类的存贮单元的相对地址;对于过程名,填入他们相应代码的入口地址 val, 当名字为变量名时,填入他们的相应值 size, 当名字为类型名时,填入该类型数据所需存贮单元的数目 指向同一程序体中定义的上一个名字在nametab中的位置,每个程序体在nametab中登记的第一个名字的link为0 二、符号表的内容 例:Pascal语言的名字信息表nametab type a=array[1..10, 1..10] of integer; nametab 例:Pascal语言的数组信息表atab 数组的下标类型 数组元素类型 当元素为数组时,它指向该元素数组信息在atab表中的位置,其他情况为0 数组下限 数组上限 数组元素的体积 数组本身的体积 二、符号表的内容 type a=array[1..10, 1..10] of integer; nametab atab 三、符号表的组织 按照属性种类完全相同的那些符号组织 在一起; 把所有语言中的符号都组织在一张符号 表中; 根据符号属性相似程度分类组织成若干 张表,每张表中记录的符号都有比较多 的相同属性。 三、符号表的组织 假设有下列三类符号及其所需属性 第一类符号 属性1 属性2 属性3 第二类符号 属性1 属性2 属性4 第三类符号 属性2 属性5 属性6 第一种组织法:按属性分类 优点:管理一致,空间效率高 缺点:管理复杂 三、符号表的组织 假设有下列三类符号及其所需属性 第一类符号 属性1 属性2 属性3 第二类符号 属性1 属性2 属性4 第三类符号 属性2 属性5 属性6 第二种组织法:单一组织 优点:管理一致,集中单一 缺点:管理复杂 三、符号表的组织 假设有下列三类符号及其所需属性 第一类符号 属性1 属性2 属性3 第二类符号 属性1 属性2 属性4 第三类符号 属性2 属性5 属性6 第三种组织法:折中方法 四、符号表的数据结构 线性表——符号表项按照符号被扫描到的先 后顺序登录 …………………   …a……………   …………b……   …a……………   …………d……   …c……………   …………b……   …… 四、符号表的数据结构 有序表——符号表项按照符号的字符代码串 的值的大小排列 …………………   …a……………   …………b……   …a……………   …………d……   …c……………   …………b……   …… 四、符号表的数据结构 散列表——符号表项的位置由对该符号进行 某种函数操作所得到的函数值来确定 …………………   …a……………   …………b……   …a

文档评论(0)

0520 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档