SDD 的求值顺序
SDD 为CFG 的文法符号设置语义属性。对于给定的输入串x,应用语义规则来计算分析树中各个节点的对应属性值
按照什么顺序计算属性值?
语义规则建立了属性之间的依赖关系,在对语法分析树节点的一个属性求值之前。必须首先求出这个属性值所依赖的所有属性值
依赖图

(继承属性放左边 综合属性放右边)

属性值的计算顺序



从计算的角度看,给定一个SDD 很难确定是否存在某课语法分析树,使得SDD 的属性之间存在循环依赖关系
幸运的是,存在SDD的有用子类,它们能够保证对每棵语法分析树都存在一个求值顺序,因为它们不允许产生带有环的依赖图
不仅如此,接下来介绍的两类SDD 可以和自顶向下和自底向上的语法分析过程一起高效的实现
S-属性定义 S-SDD
L-属性定义 L-SDD
网友评论