Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save anonymous/6212aec482e55dd9aa54bbf4ed49be2d to your computer and use it in GitHub Desktop.
Save anonymous/6212aec482e55dd9aa54bbf4ed49be2d to your computer and use it in GitHub Desktop.
Устранение леворекурсивных правил грамматики

Устранение леворекурсивных правил грамматики - «Бильгаева Н.Ц. Теория алгоритмов, формальных языков, грамматик и автоматов Учебное пособие для студентов специальности ...»


Устранение леворекурсивных правил грамматики



Алгоритм устранения левой рекурсии
Грамматика, разбирающая выражение
Синтаксические анализаторы. Нисходящие анализаторы
КС-языки и грамматики.
Устранение левой рекурсии
Леворекурсивные грамматики













Архитектура- Астрономия- Биология- Биотехнологии- Военное дело- Высокие технологии- География- Геология- Государство- Демография- Дом- Журналистика и СМИ- Изобретательство- Иностранные языки- Информатика- Искусство- История- Компьютеры- Косметика- 55 Кулинария- Культура- Лингвистика- Литература- Маркетинг- Математика- Машиностроение- Медицина- Менеджмент- Механика- Науковедение- Образование- Охрана труда- Педагогика- Полиграфия- Политика- Право- Приборостроение- Программирование- Производство- Промышленность- Психология- Религия- Связь- Сельское хозяйство- Социология- Спорт- Строительство- Торговля- Транспорт- Туризм- Физика- Философия- Финансы- Химия- Экология- Экономика- Электроника- Электротехника- Энергетика- Юриспруденция- Ядерная техника- Обобщенная грамматика, зачастую, более проста и наглядна. Тем не менее следует помнить, что для любой обобщенной КС-грамматики существует эквивалентная неукорачивающая КС-грамматика. Проведем его, как обычно, конструктивно, построением неукорачивающей грамматики. Во первых, нужно определить, порождает ли исходная грамматика пустую цепочку. Пусть S - начальный символ исходной грамматики G. Определим в G множество нетерминалов X i , из которых пустую цепочку можно получить за i шагов, и множество новых нетерминалов Z i. Таким образом мы определим аннулирующие нетерминалы. В противном случае, заменим в исходной грамматике во всех правилах S на S 1 , введем новый исходный нетерминал S и к правилам грамматики G добавим правила. Для этого заменим каждое из правил, правые части которых содержат хотя бы по одному аннулирующему нетерминалу, множеством новых правил. Если правая часть правила содержит k вхождений аннулирующих нетерминалов, то множество, заменяющее это правило, будет состоять из 2 k правил, соответствующих всем возможным способам удаления некоторых или всех из этих вхождений. Добавим к этому правилу следующие правила:. Заметим, что в случае неоднозначности, на этом шаге может получиться меньше чем 2 k правил. После такой замены правил, для всех правых частей исходной грамматики, содержащих аннулирующие нетерминалы, исключим из грамматики все e - правила, включая те, которые могли появиться при замене. В результате мы получим грамматику, эквивалентную исходной, что доказывается с использованием теорем 4. Отметим, что мы рассматривали случай, когда аннулирующие нетерминалы имеют и другие альтернативы, кроме перехода в пустую цепочку. В результате применения рассмотренного алгоритма можно получить КС-грамматику, по которой вывод любой непустой цепочки характеризуется тем, что сентенциальная форма, получаемая на каждом шаге вывода, будет не короче предыдущей. Не случайно полученная грамматика носит название неукорачивающей КС-грамматики НКС-грамматики. Вначале покажем, что данная грамматика не порождает пустой цепочки. Проведем замены правил, правые части которых содержат аннулирующие нетерминалы, а затем удалим e - правила. В результате получим грамматику. Для приведения грамматики к удлиняющей форме необходимо кроме аннулирующих правил исключить и цепные правила. Для любой КС-грамматики существует эквивалентная ей грамматика без цепных правил. Любое такое преобразование правил допустимо исходя из теорем 4. Повторяем такие преобразования до тех пор, пока в грамматике не останется цепных правил. В результате устранения аннулирующих и цепных правил получается грамматика в удлиняющей форме , где сентенциальная форма на каждом шаге вывода будет длиннее сентенциальной формы на предыдущем шаге. Напомним, что эта форма грамматики использовалась для доказательства теоремы о разрешимости контекстных языков теорема 1. КС-грамматика G называется приведенной , если она без циклов, без аннулирующих правил и без тупиков. Грамматики с e - правилами и циклами иногда труднее анализировать, чем грамматики без таковых. Кроме того, в любой практической ситуации тупики бесполезные символы без необходимости увеличивают объем анализатора. Поэтому для некоторых алгоритмов синтаксического анализа, рассматриваемых во второй части пособия, мы будем требовать, чтобы грамматики, фигурирующие в них, были приведенными. Это требование позволяет рассматривать все КС-языки. Применить к КС-грамматике, определяющей язык L , эквивалентные преобразования по теоремам 4. В целом ряде приложений требуется, чтобы грамматика рассматриваемого языка не содержала левой рекурсии. Наличие леворекурсивных правил в исходной грамматике не фатально, так как для любой КС-грамматики существует эквивалентная грамматика без левой рекурсии. Рассмотрим случай когда правила грамматики саморекурсивны , то есть левая часть правила и край правой части совпадают. Пусть нетерминал A имеет m леворекурсивных правил. Заменив эти правила на правила. Самой короткой грамматикой для представления идентификатора является леворекурсивная грамматика. В данной грамматике два леворекурсивных правила и одно правило без левой рекурсии. Заменяем их на правила. Заметим, что исключение аннулирующего правила приведет нас к грамматике из примера 4. Этот прием носит название левой факторизации и его необходимо знать для ряда приложений. D Чудо не есть ни волевой, А те, к кому вы взываете наряду с Ним, не владеют даже финиковой плевой. Болевой синдром в левой половине грудной клетки Влияние одноименных и других ионов на растворимость электролитов. Внутриотраслевая конкуренция и ее интенсивность. Водно-солевой обмен Водно-солевой режим Водно-солевой режим. Хрущева и попытки возврата к скрытому сталинизму. Добавим к этому правилу следующие правила: A k Заметим, что в случае неоднозначности, на этом шаге может получиться меньше чем 2 k правил.


Правило 1 2 3 склонение
Социально значимые проблемы общества
Пескарь рыба как готовить
Перечислить деньги с телефона на яндекс деньги
Доверенность мировому судьеот юридического лица образец
Тест гласные звуки
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment