编译原理课件Chapter9.ppt
《编译原理课件Chapter9.ppt》由会员分享,可在线阅读,更多相关《编译原理课件Chapter9.ppt(25页珍藏版)》请在三一文库上搜索。
1、1,第9章 符号表,9.1 符号表的作用和地位 9.2 符号的主要属性及作用 9.3 符号表的组织 9.4 分程序结构的符号表的组织 9.5 结合实验,PL0编译器的符号表,9.1 符号表的作用和地位,(1) 收集符号信息:在编译程序中符号表用来存放语言程序中出现的有关标识符的属性信息,符号表中所登记的信息在编译的不同阶段都要用到。 (2) 语义分析的依据:在语义分析中,符号表所登记的内容将用于语义检查(如检查一个名字的使用和原先的说明是否一致)和产生中间代码。 (3) 目标代码生成阶段地址分配的依据:在目标代码生成阶段,当对符号名进行地址分配时,符号表是地址分配的依据。对一个多遍扫描的编译程
2、序,不同遍所用的符号表也往往各有不同。因为每遍所关心的信息各有差异。,一张符号表的每一项(或称入口才包含两大栏(或 称区段、字域),即名字栏和信息栏。 名字栏(NAME) 信息栏(INFORMATION) 第1项(入口1) 第2项(入口2) 第n项(入口n) 信息栏包含许多子栏和标志位,用来记录相应名字和 种种不同属性,由于查填符号表一般是通过匹配名字 来寮现的,因此,名字栏也称主栏。主栏的内容称为 关键字(key word)。,在整个编译期间,对于符号表的操作大致可 归纳为五类: 往表中填入一个新的名字; 对给定名字,查询名字是否已在表中; 对给定名字,访问它的某些信息; 对给定名字,更新它
3、的某些信息; 删除一个或一组无用的项。 不同种类的表格所涉及的操作往往也是不同 的。上述五个方面只是一些基本的共同操作。,9.2 符号的主要属性(信息),几种通常都是需要的。 1 符号名 (变量名、过程名或函数名) 2 符号的类型 (数据类型int/float/char等) 3 符号的存储类别(静态变量、参数等) 4 符号的作用域及可视性 5 符号变量的存储分配信息 6 符号的其它属性 数组内情向量 记录 结构型的成员信息函数及过程的形参,9.3.1 符号表的总体组织,第一种: 把属性种类完全相同的那些符号组在 一起,构造出表项是分别为等长的多个符号表 第二种: 把所有语言中的符号都组织在一张
4、符 号表中。组成一张包括了所有属性的庞大的符号表 第三种:折衷方式是根据符号属性相似程度分类 组织成若干张表,每张表中记录的符号都有比较多 的相同属性。,编译程序按名字的不同种属分别使用许多符号表,如常数表、变量名表、过程名表等等。 PROCEDURE INCWAP(M,N) BEGIN 10:KM1 MM4 NK END 经编译头三阶段后所产生的主要表格有:符号名表SNT、常数表CT、过程名表ENT、标号表LT和四元式表QT,符号名表SNT NAME INFORMATION (1)M 参数,整数,变量 (2)N 参数,整数,变量 (3)K 整数,变量 常数表CT 值(VALUE) (1) 1
5、 (2) 4,过程名表ENT NAME INFORMATION (1)INCWAP 二目子程序,入口QT(1) /*记录入口名INCWAP的入口地址 标号表LT LABLE INFORMATION (1)10 QT(4) /*记录了标号10对应的四元式序列号 四元式表QT,9.3.2 符号表项的排列,符号表作为一个多元组,表中元组的排列组织是构造符号表的重要成分。在编译程序的整个工作过程中,符号表被频繁地用来建立表项,找查表项,填充和引用表项的属性。因此表项的排列组织对该系统运行的效率起着十分重要的作用。在编译程序中,符号表项的组织传统上采用三种构造方法。即线性法,排序组织法及散列法。,9.3
6、.3 关键字域的组织,符号表的关键字域(段)就是符号名称 第一种:等长关键字域(段)符号表 第二种:不等长关键字段符号表采用关键字池的索引结构。(P216),其它域的组织,对于数组:维数、上下界值、计算下标量地址 所用的信息以及数组元素类型等 对于记录(结构、联合):域的个数、每个域名、 地址位移、类型等 对于过程或函数:形参个数、所在层次、函数返 回值类型、局部变量所占空间大小等,9.4 分程序结构的 符号表组织,对于具有分程序型结构的语言程序,不同层次分程序中定义的标识符号具有不同的作用域和不同的可视性规则。通常对于具有分程序结构的语言可用两种方式组织它们的符号表: (1) 分表结构:对每
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 课件 Chapter9
链接地址:https://www.31doc.com/p-2258615.html