WenshengLiBUPT二义文法--1/2二义性如果一个文法的某个句子有不止一棵分析树,则这个句子是二义性的。含有二义性句子的文法是二义性的文法。例:考虑文法G=({+,*,(,),i},{E},E,):EE+E|E*E|(E)|id句子id+id*id存在两个不同的最左推导:EE+Eid+Eid+E*Eid+id*Eid+id*idEE*EE+E*Eid+E*Eid+id*Eid+id*id有两棵不同的分析树EE+EE*EidididEE*EE+EidididWenshengLiBUPT二义文法--2/2文法的二义性和语言的二义性如果两个文法产生的语言相同,即L(G)=L(G),则称这两个文法是等价的。有时,一个二义性的文法可以变换为一个等价的、无二义性的文法。有些语言,根本就不存在无二义性的文法,这样的语言称为二义性的语言。二义性问题是不可判定的–不存在一种算法,它能够在有限的步骤内确切地判定出一个文法是否是二义性的。–可以找出一些充分条件(未必是必要条件),当文法满足这些条件时,就可以确信该文法是无二义性的。