9.1.4符号表登记项的建立 a,符号表名字何时建立: 1,词法分析。当识别了一个标识符时,它可以建 立,不能填充种类,类型等;install子程序返回 ($ID,符号表指针); 2,但是当一个名字在同一个程序块或过程中,可用 作标号、实型变量、域名时,词法只能返回($ID, TOKEN),由语法分析程序为标识符建表 第9章符号表
第9章 符号表 11 •9.1.4 符号表登记项的建立 •a, 符号表名字何时建立: 1,词法分析。当识别了一个标识符时,它可以建 立,不能填充种类,类型等; install 子程序返回 ($ID, 符号表指针); 2,但是当一个名字在同一个程序块或过程中,可用 作标号、实型变量、域名时,词法只能返回($ID, TOKEN),由语法分析程序为标识符建表
b,这些信息在不同的时刻插入符号表: 1,遇到显式说明时,把属性插入; 2,语法可以隐含的说明变量的某种用途,如标号 后的:,所以和产生式 语句>id语句 相关的语义动作是把d为标号的事实插入符号表, 标号链,定义否填入; 3,地址分配: 类似,过程说明的语法告诉我们某些名字是形参。 第9章符号表
第9章 符号表 12 b, 这些信息在不同的时刻插入符号表: 1,遇到显式说明时,把属性插入; 2,语法可以隐含的说明变量的某种用途,如标号 后的 : ,所以和产生式 语句-> id:语句 相关的语义动作是把 id 为标号的事实插入符号表, 标号链,定义否填入; 3,地址分配; 类似,过程说明的语法告诉我们某些名字是形参
符号表的组织 总体组织和表项属性信息组织 第一种:把属性种类完全相同的那些符号组织在一起 构造出表项是分别为等长的多个符号表 第二种:把所有语言中的符号都组织在一张符号表中。 组成一张包括了所有属性的庞大的符号表 第三种折衷方式是根据符号属性相似程度分类组织成 若干张表,每张表中记录的符号都有比较多的相同 属性。 第9章符号
第9章 符号表 13 符号表的组织 总体组织和表项属性信息组织 第一种: 把属性种类完全相同的那些符号组织在一起, 构造出表项是分别为等长的多个符号表 第二种: 把所有语言中的符号都组织在一张符号表中。 组成一张包括了所有属性的庞大的符号表 第三种折衷方式是根据符号属性相似程度分类组织成 若干张表,每张表中记录的符号都有比较多的相同 属性
符号表项的排列 符号表作为一个多元组,表中元组的排列组织 是构造符号表的重要成分。在编译程序的整 个工作过程中,符号表被频繁地用来建立表 项,找查表项,填充和吲引用表项的属性。因 此表项的排列组织对该系统运行的效率起着 十分重要的作用。在编译程序中,符号表项 的组织传统上采用三种构造方法。即线性法 三分法及散列法
第9章 符号表 14 符号表项的排列 符号表作为一个多元组,表中元组的排列组织 是构造符号表的重要成分。在编译程序的整 个工作过程中,符号表被频繁地用来建立表 项,找查表项,填充和引用表项的属性。因 此表项的排列组织对该系统运行的效率起着 十分重要的作用。在编译程序中,符号表项 的组织传统上采用三种构造方法。即线性法, 二分法及散列法
9.1.5名字和符号表记录 实现表的最简单方式是看成记录的线性数组,每一栏目所占存储单 元长度不变,每个名字对应一个记录,记录通常由已知个连续的存 储字组成。 标识符 DIMP二个字 E 记录1 信息 属性5个字 图9.1(a)存储标识符在记录中 标识符 信息 记录2 第9章符号表
第9章 符号表 15 •9.1.5 名字和符号表记录 实现表的最简单方式是看成记录的线性数组,每一栏目所占存储单 元长度不变,每个名字对应一个记录,记录通常由已知个连续的存 储字组成。 … DIMP 二个字 LE 属性 5个字 … 标识符 信息 标识符 信息 记录1 记录2 图9.1(a) 存储标识符在记录中