Изменения

Перейти к: навигация, поиск

Устранение левой рекурсии

2 байта добавлено, 21:32, 18 января 2013
Алгоритм устранения произвольной левой рекурсии
Воспользуемся [[Удаление_eps-правил_из_грамматики | алгоритмом удаления <tex> \varepsilon </tex>-правил]]. Получим грамматику без <tex> \varepsilon </tex>-правил для языка <tex>L(\Gamma) \setminus \lbrace \epsilon \rbrace</tex>.
Упорядочим нетерминалы и будим добиваться того, чтобы не было правил вида <tex>A_i \to A_j\alpha</tex>, где <tex>j < \le i</tex>.Можно заметить, что если данное условие выполняется для всех<tex>A_i</tex>, то в грамматике не будет <tex>A_i \Rightarrowto^* A_i</tex>, а значит надо будет только устранить непосредственную левую рекурсию для <tex>A_i</tex>.
Анонимный участник

Навигация