1 / 37
文档名称:

9_符号表.ppt

格式:ppt   页数:37页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

9_符号表.ppt

上传人:ranfand 2016/4/13 文件大小:0 KB

下载得到文件列表

9_符号表.ppt

相关文档

文档介绍

文档介绍:表格管理表格管理??种类种类??符号表、关键字表、层次表、常数表符号表、关键字表、层次表、常数表关键字表关键字表??表项结构表项结构??关键字标识关键字标识 ( ( 整数,如整数,如 WHILE WHILE , , IF ) IF ) ??关键字名字关键字名字 ( ( 字符串,如字符串,如" " while" while" , , "if") "if") ??常用的操作: 常用的操作: ?? int IsKeyword( char Name[ ] ); int IsKeyword( char Name[ ] ); 1层次表层次表??保存各级分程序、循环语句、条保存各级分程序、循环语句、条件语句的有关信息件语句的有关信息??如:局部名字、转移标号等如:局部名字、转移标号等??辅助标识符的管理辅助标识符的管理 2符号表符号表??保存名字及其属性保存名字及其属性??名字:变量名,过程名,标号名名字:变量名,过程名,标号名和常数名和常数名??属性:种类,类型,存储类别, 属性:种类,类型,存储类别, 作用域等作用域等??作用作用??绑定的完成、空间分配、绑定的完成、空间分配、??特殊语法现象、语义合法性检查特殊语法现象、语义合法性检查 3符号表的功能符号表的功能??建立表项建立表项??以标识符为关键字以标识符为关键字??属性的设置与引用属性的设置与引用??类型、作用域、存储类别、地址等类型、作用域、存储类别、地址等 4符号表的实现符号表的实现??实现方法: 实现方法: ??线性表、排序表、散列表(哈希) 线性表、排序表、散列表(哈希) ??特殊问题特殊问题??结构成员、函数参数、分程序结构结构成员、函数参数、分程序结构??性能性能??优先考虑查找的效率优先考虑查找的效率 56第第9 9章章符号表符号表 符号表的作用和地位符号表的作用和地位 符号的主要属性及作用符号的主要属性及作用 符号表的组织符号表的组织符号表的作用和地位符号表的作用和地位————语义检查的依据语义检查的依据和目标代码生成阶段地址分配的依据和目标代码生成阶段地址分配的依据属性信息: 属性信息: 存放语言程序中出现的有关标识符的存放语言程序中出现的有关标识符的属性信息,在编译的不同阶段都要用到。属性信息,在编译的不同阶段都要用到。语义检查: 语义检查: 在语义分析中,符号表所登记的内容在语义分析中,符号表所登记的内容将用于语义检查(如检查一个名字的使用和原将用于语义检查(如检查一个名字的使用和原先的说明是否一致)和产生中间代码。先的说明是否一致)和产生中间代码。存诸分配: 存诸分配: 在目标代码生成阶段,当对符号名进在目标代码生成阶段,当对符号名进行地址分配时,符号表是地址分配的依据。行地址分配时,符号表是地址分配的依据。对一个多遍扫描的编译程序,因为每遍所关心的对一个多遍扫描的编译程序,因为每遍所关心的信息各有差异,所用的符号表内容也往往各有信息各有差异,所用的符号表内容也往往各有不同。不同。 7 一张符号表的每一项一张符号表的每一项( (或称入口或称入口) )包含两大栏(或称区段、包含两大栏(或称区段、字域),即字域),即名字栏名字栏和和信息栏信息栏。。名字栏名字栏( ( NAME) NAME) 信息栏( 信息栏( INFORMATION INFORMATION ) ) 第第1 1项(入口项(入口 1 1) ) 第第2 2项(入口项(入口 2 2) ) ……第第n n项(入口项(入口 n n) ) 信息栏包含许多子栏和标志位,用来记录相应名字和种信息栏包含许多子栏和标志位,用来记录相应名字和种种不同属性,由于查填符号表一般是通过匹配名字来种不同属性,由于查填符号表一般是通过匹配名字来实现的,因此,名字栏也称主栏,主栏的内容称为关实现的,因此,名字栏也称主栏,主栏的内容称为关键字( 键字( key word key word )。)。 8 在整个编译期间,对于符号表的操作大致可归在整个编译期间,对于符号表的操作大致可归纳为五类: 纳为五类: ??往表中填入一个新的名字; 往表中填入一个新的名字; ??对给定名字,查询名字是否已在表中; 对给定名字,查询名字是否已在表中; ??对给定名字,访问它的某些信息; 对给定名字,访问它的某些信息; ??对给定名字,更新它的某些信息; 对给定名字,更新它的某些信息; ??删除一个或一组无用的项。删除一个或一组无用的项。不同种类的表格所涉及的操作往往也是不同不同种类的表格所涉及的操作往往也是不同的。上述五个方面只是一些基本的共同操作。的。上述五个方面只是一些基本的共同操作。