编译原理符号表.ppt
《编译原理符号表.ppt》由会员分享,可在线阅读,更多相关《编译原理符号表.ppt(62页珍藏版)》请在三一办公上搜索。
1、第9章 符号表,数计学院宋彩芳,9 符号表,符号表的作用和地位符号的主要属性及作用符号表的组织符号表的管理,符号表的作用和地位,符号表用来存放语言程序中出现的有关标识符的属性信息,这些信息集中反映了标识符的语义特征属性;在词法分析及语法分析过程中不断积累和更新表中的信息。在词法分析到代码生成的各个阶段,按各自需要从表中获取不同的属性信息。,符号表的作用和地位,符号表的功能有:收集符号属性;int i35;上下文语义的合法性检查的依据;extern float i;/类型不一致float i42;/重定义作为目标代码生成阶段地址分配的依据;extern 公共区extern static 文件静态
2、区static 函数静态区auto 动态区,9 符号表,符号表的作用和地位符号的主要属性及作用符号表的组织符号表的管理,符号的主要属性及作用,语言符号可分为:关键字(保留字)符号操作符符号标识符符号语言中标识符可以是变量名、函数名、过程名;过程没有返回值,如同C的void 函数则有,如同C的带返回值函数,标识符符号的属性(信息),几种通常都是需要的。1 符号名 2 符号的类型 3 符号的存储类别 4 符号的作用域及可视性 5 符号变量的存储分配信息 6 符号的其它属性 数组内情向量 记录结构型的成员信息 函数及过程的形参,标识符符号的属性(信息),一、符号名符号名与它在符号表中的位置一一对应;
3、标识符的内部代码也即标识符在符号表中的位置(通常是一个整数)可以替换符号名;符号表运行过程中,表中的标识符名始终是唯一标志;特殊情形:重名标识符定义:根据标识符在程序中的作用域和可视性规则进行处理。表中标识符名始终唯一;操作重载:通过它们的参数个数和类型,以及函数返回值类型来区别。以达到标识符的唯一;,标识符符号的属性(信息),二、符号的类型除过程标识符之外的函数和变量标识符都具有数据类型;函数的数据类型指该函数值的数据类型;变量符号的类型属性决定了其存储方式和可施加的运算操作;数据类型:基本数据类型:整型、实型、字符型、逻辑型(布尔型)、位组型(字节型);复合数据类型:数组、记录结构;,标识
4、符符号的属性(信息),三、符号的存储类别由关键字指定;用static定义属于文件的静态存储变量或属于函数内部的静态存储变量用regist定义使用寄存器存储的变量;由变量在程序中位置决定;函数外是程序的公共存储变量函数内是内部变量;存储类别作用:编译过程语义处理、检查和存储分配的重要依据;决定了符号变量的作用域、可视性和它的生命周期;,标识符符号的属性(信息),四、符号的作用域及可视性:作用域:符号变量在程序中起作用的范围;如C语言中声明为extern的外部变量,其作用域是整个程序;在函数外声明的静态变量的作用域是定义该静态变变量的文件;函数内声明的静态变量作用域是定义该变量的函数;,标识符符号
5、的属性(信息),影响变量可视性的情况:函数的形式参数;int a;int fun(float a,float b)a/引用float a改变可见性作用域操作符:int a;int fun(float a,float b)a/引用float a:a/引用int a,标识符符号的属性(信息),影响变量可视性的情况:复合语句分程序结构;int a;char a;float a;a/引用char a,标识符符号的属性(信息),为确立符号的作用域和可视性,符号表属性除了需要符号的存储类别之外还需要表示该符号在程序结构上被定义的层次;,标识符符号的属性(信息),五、符号变量的存储分配信息:根据符号变量的存
6、储类别定义及它们出现的位置和次序来确定每个变量应分配的存储区及在该区的具体位置;存储区静态存储区:生命周期是程序运行的全过程;公共静态区:如extern定义的外部变量;局部静态区:如static定义的静态变量;函数外表示文件可视性,函数内表示所在函数可视;动态存储区:生命周期是定义该变量的局部范围;,标识符符号的属性(信息),具体位置:按该变量在存储区类分别依出现先后的次序排列下相对该存储区表头的相对位移量来表示的;Int a;.float b;Struct cc int d;float e;c;,标识符符号的属性(信息),符号的其他属性:数组内情向量数组类型、维数、各维上下界、数组首地址;记
7、录结构型的成员信息全体成员确定其存储分配;成员排列次序的属性信息;函数及过程的形参形参个数、形参的排列次序及每个形参的类型;,9 符号表,符号表的作用和地位符号的主要属性及作用符号表的组织符号表的管理,符号表的组织,符号表的总体组织不同种类符号,其属性信息种类不完全相同;不同程度但有有所不同;符号表项的排列关键字域的组织其他域的组织,符号表的组织,符号表的组织,第一种:按属性种类完全相同的那些符号组织在一起;,符号表的组织,第一种:按属性种类完全相同的那些符号组织在一起;优点:每个符号表存放符号的属性个数和结构完全相同;表项等长,且表项每个属性栏都有效;对单个符号表来说,管理方便一直,空间效率
8、高;缺点:同时管理多个符号表,增加了总体管理的工作量和复杂度;,符号表的总体组织,把所有语言中的符号都组织在一张符号表中;,符号表的总体组织,把所有语言中的符号都组织在一张符号表中;优点:总体管理非常集中单一,且不同种类符号的共同属性可以一致地管理和处理;缺点:增加了符号表管理的复杂度;增加无用的属性空间,从而增加了空间开销;,符号表的总体组织,根据符号属性相似程度分类组织若干张表;,符号表的总体组织,根据符号属性相似程度分类组织若干张表;折中的组织方式在管理复杂性及时空效率方面都取得折中的效果。对复杂性和效率的取舍可由设计者根据自己的经验和要求及目标系统的客观环境和需求进行选择和调整;,属性
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 符号
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6140992.html