Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Левая факторизация КС-грамматики

End

For j:= 1 to i-1 do begin

Алгоритм устранение левой рекурсии, не являющейся непосредственной рекурсией

Устранение прямой рекурсии в общем случае

1. Группируем - продукции в виде

2. Заменим эти - продукции

Переменная порождает те же строки, но без левой рекурсии.

 

Гарантированно работает с грамматикой, не имеющей циклов (т.е. ) и -правил.

Вход. КС-грамматика без циклов и -правил.

Выход. Эквивалентная грамматика без левой рекурсии.

Алгоритм.

1. Расположить переменные в некотором порядке: .

2. For I:= 1 to n do begin

Заменить каждую продукцию вида

продукциями ,

где - все текущие -продукции.

Устранить непосредственную левую рекурсию.

End.

 

Пример. …

 

Основная идея. Когда не ясно каким из двух вариантов правил переменной воспользоваться, -правила можно переписать так, чтобы отложить принятие решения до тех пор, пока из входного потока будет прочитано достаточно символов для правильного выбора.

Пример. Есть два правила

Обнаружив во входном потоке терминал , мы не в состоянии тут же выбрать одно из этих правил.

 

В общем случае, если - два -правила. Какую правую часть выбрать?

Перепишем правила в виде:

 

<== предыдущая лекция | следующая лекция ==>
Устранение непосредственной левой рекурсии | Нисходящий синтаксический анализ
Поделиться с друзьями:


Дата добавления: 2013-12-14; Просмотров: 698; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.