编译原理符号表陈火旺版.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文档。上传文档
查看更多
编译原理符号表陈火旺版

8.1 符号表的组织与作用 一、符号表组成 一张符号表的每一项(入口)包含两大栏(区段,字域),即名字栏和信息栏。 表格的形式 第1项(入口1) 第n项(入口n) 二、符号表使用(基本操作) 1.(查表)对给定名字,查询此名是否已在表中 2.(填表)填入新名 3.(访表信息)对给定名字,访问它的信息 4.(更新)对给定名字,往表中填写或更新它的某些信息 5.(删除)删除一个或一组无用的项 三、符号表的组织方式 1.直接填写式 Name Information sample … loop … 2. 用一个独立的字符串数组,把所有标识符放在其中 (1)在符号表主栏放一个指示器和整数 Name Information 四、符号表种类 符号名表 常数表 入口名表 标号表 四元式表 内情向量表 (维数n,首地址a,上界,下界,界差) … 8.2 整理与查找 线性表 办法最简单,效率低 二叉树 效率高,实现困难 杂 凑 效率最高,实现复杂,消耗额外存储空间 一、线性表 1. 构造 按关键字出现顺序填写各个项 “先来者先填” 2. 查找 从第一项开始顺序查找,若一直查找到AVAILBLE项还未找到,说明该名字不在表中 Name Information 1 J1 - - 2 XYZ - - 3 I - - 4 BC - - AVAILBAE→ 3.提高线性表查找效率(自适应线性表) 给每项附设一个指示器,这些指示器把所有的项按“最新最近”访问原则连接成一条链,使得在任何时候,这条链的第一个元素所指的项是那个最新最近被查询过的项,第二个元素所指的项是那个次新次近被查询过的项,如此等等,… 二、对折查找与二叉树 整理 为了提高查表的速度,可以在造表的同时把表格中的项按名字的“大小”顺序整理排列。 2.对折查找(折半查找) n项 [n/2 +1] 小 中 大 ← ↑ → ↑ ↑ 顺序化整理极费时间 3.符号表组织成二叉树 令每项是一个结点,每个结点附设两个指示器栏,分别为LEFT,RIGHT。每个结点主栏内码值被看成是代表该结点的值,任何结点P右枝所有结点值均应小于结点P的值,而左枝任何结点值均应大于结点P的值。 4.二叉树形成过程 令第一个碰到的名字作为“根“结点,它的左,右指示器均置为null.当要加入新结点时,首先把它和根结点值作比较,小者放在右枝上,大者放在左枝上,如果根结点的左(右)枝已成子树,则让新结点和子树的根再作比较,重复直至把新结点插入使它成为二叉树的一个端末结点(叶子)为止。 三、杂凑技术 填表快,查表慢 方法 构造一个地址函数H,对任何名字SYM,H(SYM)取值于0~N-1,不论对SYM查表或填表,都希望能从H(SYM)获得它在表中的位置 2.Hash函数构造方法 (1) 直接定址法 取关键字或关键字的某个线性函数值为Hash地址      H(key)=key或H(key)=a.key+b (2)数字分析法 若关键字是以r为基的数,且Hash表中可能出现的关键字都是事先知道的,则可取关键字的若干数位组成Hash地址 (3)折迭法 将关键字分割成位数相同的几部分,然后取这几部分的迭加和作为Hash地址 (4)除留余数法 取关键字被某个不大于哈希表表长m的数P除后所得余数为 Hash地址 H(key) = key MOD P (P≤m) (5)平方取中法 取关键字平方的中间几位为Hash地址 (6)随机数法

文档评论(0)

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

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

1亿VIP精品文档

相关文档