Изменения

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

Обсуждение:Устранение левой рекурсии

1200 байт добавлено, 17:00, 8 декабря 2012
Нет описания правки
: {{tick}} написать, почему, собственно, надо ее устранять верно ли что для нормального разбора сверху вних
: {{tick}} англоязычные термины и источники
: {{tick}} а сложность алгоритма какая? --[[Участник:Dgerasimov|Дмитрий Герасимов]] 22:31, 7 декабря 2012 (GST)
 
 
 
 
1)Таким образом, после применения алгоритма все правила вывода имеют вид:
*<tex>A \rightarrow c \alpha </tex>, где <tex>c</tex> {{---}} терминал, <tex>A</tex> {{---}} произвольный нетерминал;
*<tex>A_i \rightarrow A_j \alpha </tex>, где <tex>i < j</tex>, <tex>A_i , A_j</tex> {{---}} нетерминалы из исходной грамматики;
*<tex>A_i^{\prime} \rightarrow A_j \alpha </tex>, где <tex>A_i^{\prime}</tex> {{---}} новый нетерминал, <tex>A_j</tex> {{---}} нетерминал из исходной грамматики.
 
Если теперь перенумеровать нетерминалы, сохранив порядок для старых и присвоив всем новым меньшие номера, то все правила будут иметь вид:
*<tex>B_i \rightarrow c \alpha </tex>, где <tex>c</tex> {{---}} терминал;
*<tex>B_i \rightarrow B_j \alpha </tex>, где <tex>i < j</tex>.
 
казалось бы это бред
Анонимный участник

Навигация