编译原理:FIRST集、FOLLOW集、SELECT集的求法及LL(1)文法的判定——篇①FIRST集的求法
菜鸡程序媛的首发,请多多指教!(斜体字为自己理解总结出的内容和解题过程,用通俗易懂的话表达,方便大家理解,非书面表达)
参考链接:链接: link.
写在最前面:
一般来说,+、(、)等符号和小写的英文字母,为终结符;
α、β等希腊字母和大写的英文字母为非终结符;
用#表示文法结束符
LL(1)文法
对文法G的句子进行确定的自顶向下语法分析的充分必要条件是,G的任意两个具有相同左部的产生式A->α|β 满足下列条件:
(1)如果α、β均不能推导出ε,则 FIRST(α) ∩ FIRST(β) = ∅。
(2)α 和 β 至多有一个能推导出 ε。
(3)如果 β *═> ε,则 FIRST(α) ∩ FOLLOW(A) = ∅。
将满足上述条件的文法称为LL(1)文法。
因此需根据该文法的FIRST集、FOLLOW集、SELECT集,对该文法进行判定。