Изменения

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

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

878 байт убрано, 20:23, 7 января 2013
Нет описания правки
<tex> {S_1} \Rightarrow \beta{S_1} | \alpha\gamma{S_1}</tex>
 
 
 
Для произвольной грамматики <tex>\Gamma</tex> левую рекурсию можно устранить следующим образом:
#Воспользуемся [[Удаление_eps-правил_из_грамматики | алгоритмом удаления <tex> \varepsilon </tex>-правил]]. Получим грамматику без <tex> \varepsilon </tex>-правил для языка <tex>L(\Gamma) \setminus \lbrace \varepsilon \rbrace</tex>.
#Воспользуемся алгоритмом ''устранения произвольной левой рекурсии''.
#Если <tex>\varepsilon</tex> присутствовал в языке исходной грамматики, добавим новый начальный символ <tex>S'</tex> и правила <tex>S' \rightarrow S \, | \, \varepsilon </tex>.
==Литература==
228
правок

Навигация