编译原理简明教程(第3版)-课件 第9、10章 目标代码的生成、符号表和出错处理.pptx

编译原理简明教程(第3版)-课件 第9、10章 目标代码的生成、符号表和出错处理.pptx

  1. 1、本文档共64页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

新工科建设·计算机类系列教材;6;2024/11/6Wednesday;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35;;新工科建设·计算机类系列教材;6;2024/11/6Wednesday;;符号表是一个包含程序中的变量、子程序、常量、过程定义、数组信息等内容的数据库。

一般地,符号表由一些表项组成二维表格。

名字域—存放符号或其内部码

每个表项

属性域—存放属性和特征

例如:

;符号表的组织方式

简单方式:固定名字域和属性域的长度。

有的语言标识符长度不超过6个字符,可定为6位。

间接方式:在符号表的名字域中存放一个指针或一个指针和一个整数,把标识符存放到一个字符串数组中。见图10.2;符号表的内容

属性域的内容因符号表名字域内容不同而不同。

例如数组:维数、下标界偶、存储区域等信息数组信息向量表。如图10.3。

静态表(编译前事先构造好):保留字表、标

符号表准函数名表等。

动态表(编译过程中根据需要构造的表):变量名表数组信息表、过程信息表等。

;变量表如图10.4

线性表(无序符号表):按程序中符号出现的先后次序建立的表。如图10.5

查找方式:只能线性查找,(查找效率低),结构简单,节省空间,适合于比较小的表。

;有序符号表:按一定顺序(如字典顺序)排列符号。

如图10.6、10.7

查找:折半查找法,查找效率较高。

但填入表时会增加移动开销。;散列符号表(哈希符号表):利用哈希函数值确定符号在表中的位置。

hash函数性质:

·函数值只依赖于对应符号

·函数计算简单、高效

·函数值能较均匀分布

如:除法散列函数、乘法散列函数、多项式

除法散列函数、平方取中散列函数等。

“质数除余法”见图10.8

查询效率较高,但要解决散列冲突问题。;设计一个栈,新符号出现从栈顶压入。

查找时从栈顶→栈底

例PASCAL语言分程序嵌套结构

例10-1程序的栈式符号表如图10.9、10.10、10.11

查找时,必威体育精装版加入的符号总是最先查找。

适合嵌套结构的程序设计语言,但表太大时,查找速度较慢。;;;;;;;;;;;;;;;62;63;

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档