第十一章语义分析和中间代码生成.ppt

第十一章语义分析和中间代码生成;一.符号表的一般形式

每个名字对应一个表项,一个表项包括名字域和信息域。;其中,信息域通常设若干子域及标志位,其内容可以是和名字有关的任何信息:

类型,种属,长度,相对地址,数组的内情向量,记录与分量的联系,形参标志,说明标志,赋值标志等。

因名字的长度、信息域的组成及长度可能是各不相同的,一般采用间接表技术。;二.常用的符号表结构

1.线性表:用N个数组A1,A2,…,AN来存放符号表的N个子域

2.HASH表;第一节语义分析概论;二.语法制导翻译

为每个产生式配上一个语义子程序,在语法分析过程中,当用一个产生式进行匹配或归约时,就调用相应的语义程序。

上述语义子程序既可能包含了语义检查,也可能包含了语义处理,其核心是为了生成相应的中间代码。;例:语法分析采用自底向上的LR分析法

X?AB

Y?CD

Z?XY;状态栈;状态栈;状态栈;状态栈;三.四元式

形式:(op,ARG1,ARG2,RESULT)

op—运算符,ARG1—第一运算量,

ARG2—第二运算量,RESULT—结果;如:A:=-B*(C+D)翻译成

(@,B,_,t1)

(+,C,D,t2)

(*,t1,t2,t3)

文档评论(0)

1亿VIP精品文档

相关文档