第六章代码生成和代码优化 第o节符号表 在程序中,用户用标识符定义了不少名 字来代表不同的数据对象编译程序将这 些名字保存在符号表中。符号表除了记 录名字本身而外还记录了与名字关联的 各种属性信息
第六章 代码生成和代码优化 第o节 符号表 在程序中,用户用标识符定义了不少名 字来代表不同的数据对象,编译程序将这 些名字保存在符号表中。符号表除了记 录名字本身而外,还记录了与名字关联的 各种属性信息
符号表的一般形式 每个名字对应一个表项一个表项包括名 字域和信息域。 名字 信息
一. 符号表的一般形式 每个名字对应一个表项,一个表项包括名 字域和信息域。 名字 信息
其中,信息域通常设若干子域及标志位,其 内容可以是和名字有关的任何信息 类型种属长度相对地址数组的内情向量, 记录与分量的联系形参标志说明标志赋 值标志等。 因名字的长度、信息域的组成及长度可 能是各不相同的一般采用间接表技术
其中,信息域通常设若干子域及标志位,其 内容可以是和名字有关的任何信息: 类型,种属,长度,相对地址,数组的内情向量, 记录与分量的联系,形参标志,说明标志,赋 值标志等。 因名字的长度、信息域的组成及长度可 能是各不相同的,一般采用间接表技术
二.常用的符号表结构 1线性表用N个数组A,A2A来存 放符号表的N个子域 2HASH表
二. 常用的符号表结构 1. 线性表: 用N个数组A1 ,A2 ,…,AN来存 放符号表的N个子域 2. HASH表
第一节语义分析和中间代码生成 O.概述 1.语义分析的主要工作 (1)语义检查:如类型是否-致数组维 数是否正确。 (2)语义处理:对说明语句,登记信息;对 可执行语句生成中间代码
第一节 语义分析和中间代码生成 O. 概述 1. 语义分析的主要工作 (1)语义检查: 如类型是否一致,数组维 数是否正确。 (2)语义处理: 对说明语句,登记信息;对 可执行语句,生成中间代码