结论:LL(1)文法是无二义的。 LL(1)文法的含义是:第一个L表明自顶向下分析是从左向右扫描输入串,第二个L表明分析过程中将用最左推导,'1'表明只需向右看一个符号便可决定选择哪个产生式(规则)进行推导,类似也可以有LL(K)文法,也就是需向前查看K个符号才可确定选用哪个产生式。通常采用K=1,个别情况采用K=2。回顾5.1的例5.1~例5.3文法满足LL(1)文法,例5.4~例5.6不满足LL(1)文法。 对例5.5文法不是LL(1)文法,不能用确定的自顶向下分析。其原因我们也可以直观地对输入串W=ab的下列两种不同推导过程看出,其第一种推导过程可为: S ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 以上两种推导中,当第二步推导时当前输入符为b,对句型aAS中的A用哪个产生式推导不能唯一确定,也就是导致了这个文法不能构造确定的自顶而下分析。 |