完全左分解以下语法,使其适用于自上而下的编译器

Fully left-factor the following grammar so that it is suitable for use in a top-down compiler

这里S是非终结符开始符号;一种, B、C为非终结符号; x, y, 是终结符号

S → A B A C | A C A B
A → A x | A y
B → B x x | B y y
C → x y | y x

看过视频后,我理解了消除生产规则中左递归的简单示例,例如

S → a S a
S → b S b
S → ε

但我不明白如何消除上面显示的规则中的左递归。任何人都可以解释或指出解释的方向吗?

您的第二个示例中没有左递归,因此删除左递归是微不足道的。

在您的第一个语法中,您需要 left-factor 才能解决递归消除问题。 (确实,你的题目是"left-factor",所以你的作业中已经有了这个线索assignment/quiz。)

上面提供的 link 是 Google 使用搜索词 "left factor grammar" 找到的数百个之一,但我建议您至少考虑一下您的课程材料的可能性是比 Google 搜索(或随机 Youtube 视频)更好的信息来源。