编译原理题目:下列文法能否转换为等价的非二义文法?

G1[S]:S→A A→AA A→aAb A→ab 对序列ababab存在二义性

二义性文法【定义】 若文法中存在这样的句型,它具有两棵不同的语法树,则称该文法是二义性文法。二义性文法会引起歧义,应尽量避免之! E E E + E E * E i E * E E + E i i i i i 都可以表示i+i*i 所以G(E):E -> E+E | E*E | (E) | i ;文法具有二义性。文法二义性的消除:【方法1】不改变文法的原有规则,加进一些非形式规定。加进运算符的优先顺序和结合规则对G(E),规定*优于+,*和+服从左结合【方法2】构造一个等价的无二义性文法,将排除 二义性的规则合并到文法中 G(E) -> G′(E) : E -> E+T | T T -> T*F | F F -> (E) | i ;
温馨提示:答案为网友推荐,仅供参考
相似回答