您在这里找到答案的原因是,任何epsilon转换都可以表示为更少的简单转换。 ε过渡是不明确的。 为了从计算上解决这种歧义,您需要从给定的过渡生成所有可能的结果。
范例1:
A -> aA | e
是
A-> a
A-> aA
范例2:
B->A b A
A->a | e
是
B -> z | A z | z A | A z A
A -> a
其中e代表ε(ε)跃迁
您可以看到,您必须在epsilon转换之外生成所有可能的结果,才能掩盖歧义。 我认为如何在计算上表达歧义令人着迷。
来源示例2 在这里