二义性文法的理解和消除方法

给定文法G,如果存在句子s,它有两棵不同的分析树,那么称G是二义性文法 从编译器角度,二义性文法存在问题: 同一个程序会有不同的含义 因此程序运行的结果不是唯一的 一个句子有多于一棵分析树,仅与文法和句子有关,与采用的推导方式无关。 悬空else问题 在复合if语句中,可能then多于else,使得else不知与哪个then结合.一般原则是右结合,即else与左边最靠近的then结合。改写文法的根
相关文章
相关标签/搜索