综合属性和继承属性之间的区别

合成属性和继承属性都是语言语义的一部分,该语言为其构造提供含义,例如标记和语法结构。语义有助于解释符号,符号的类型及其相互之间的关系,其分析可判断源程序中构造的语法结构是否衍生出任何含义。现在,基于属性的特征,我们可以区分综合属性和继承属性

以下是合成属性和继承属性之间的重要区别。

序号综合属性继承的属性
1定义合成属性是一个属性,其解析树节点的值由子节点上的属性值确定。为说明起见,假设以下生产S→ABC,如果S从其子节点(A,B,C)获取值,则为称为合成属性,因为ABC的值合成为S。另一方面,如果某个属性的解析树节点值由父级和/或同级节点上的属性值确定,则该属性称为“继承的”属性。在S→ABC的情况下,如果A可以从S,B和C中获取值。B可以从S,A和C中获取值。同样,C可以从S,A和B中获取值,那么S被称为继承属性。
2设计如上 ,在“合成”属性的情况下,产品必须以非终端为首。另一方面,在“继承”属性的情况下,生产主体中的符号必须具有非终结符。
3评价可以在分析树的单个自底向上遍历期间评估合成属性。另一方面,可以在分析树的单个自顶向下和横向遍历期间评估Inherited属性。
4终奌站终端和非终端都可以包含“合成”属性。另一方面,只有非终端可以包含Inherited属性。
5用法S属性SDT和L属性STD都使用Syntherated属性。另一方面,仅L所属的SDT使用Inherited属性。