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