属性文法是在上下文无关文法的基础上为每个文法符号(终结符或非终结符)配备若干个相关的“值”(称为属性)。
属性分为两类:
(1)综合属性
用于“自下而上”传递信息
在语法树中,一个结点的综合属性的值,由其子结点的属性值确定
S—属性文法:仅仅使用综合属性的属性文法
(2)继承属性
用于“自上而下”传递信息。
在语法树中,一个结点的继承属性由此结点的父结点和/或兄弟结点的某些属性确定
刚开始接触的时候对于继承属性没有很直接的概念,通过学习对它有了一定的了解。
举两个具体的例子来说明:
(1)综合属性:
考虑语句:a = b + c
对应的文法如下:
E-> T +