(Inherited Attributes)。
2022/2/4
7
属性文法的定义
定义6.3 属性文法AG是一个四元组:AG=(G,A,R,B), 其中, G是已简化的CFG;
A=∪X∈VA(X)是属性的有限集合;
R= ∪p∈PR(p)是属性定义规则的有限集;
B=∪p∈PB(p)是条件的有限集合,B(p)用于描述使R(p)有效 的条件;
1.每个文法符号和语义动作符X都有一个相关的有限属性集合A(X),且每 个属性都有一个允许值的集合(属性的值域,可以是无限集)。
2.非终结符和动作符的属性可分为继承属性与综合属性两类。
3.继承属性的定义规则为:
①开始符号的继承属性具有指定的初始值;
②对于给定的产生式p:Y→X1X2…Xn∈P,Xi的继承属性值由p中其它符号 的属性值进行计算:Xi.a=f(Y.b, Xk1.ak1,…,Xkm.akm) i{k1,…,km}
2022/2/4
2
中间代码
中间代码生成:
–指把单词符号串形式的源程序转换为另一种等价的便于 代码优化处理和目标代码生成表示。
两个主要问题:
–如何描述语言的语义(语法制导翻译方法); – 中间代码如何表示(逆波兰表示、三元式、四元式等)。
2022/2/4
3
语法制导翻译方法概述
语法制导翻译方法
– 在语法分析过程中,随着分析的步步进展,根据每个产生式所对应的 语义子程序进行翻译(产生中间代码)的方法。
– 实质就是根据文法中每个产生式的语义,为其配备若干个语义子程序, 对所要完成的功能进行描述。
产生式语义:
– 由组成该产生式所有文法符号的语义决定。
语义:
– 文法符号X的语义信息,称之为语义属性或简称为属性。 – 可用形如X.ATTR的记号来表示文法符号X的相关语义属性。