29377

Нисходящий грамматический разбор с возвратами

Доклад

Информатика, кибернетика и программирование

Суть данного метода можно представить в виде следующей последовательности шагов выполнение которых повторяется в процессе чтения входной цепи символов. Если активная вершина помечена а T то сравнить его с очередным символом входной цепочки. Сравниваемые символы совпали тогда сделать активной вершиной дерева лист правее а и перейти к следующим символам входной цепочки. Символы не совпали то выполним возврат к предыдущему уровню дерева разбора и соответствующему символу входной цепочки.

Английский

2013-08-21

83 KB

0 чел.

15) Нисходящий грамматический разбор с возвратами.

Данный метод является наиболее простым, но трудоемким. Для любой продукции используемой грамматики с одинаковыми левыми частями перенумеруем правые части. 
A→α1 | … | αk и будем называть их альтернативами соответствующим нетерминалам. Т.к. для КС(контекстно-свободные) грамматик правая часть продукции может быть любой цепочкой терминальных и нетерминальных символов, до обозначений некоторых альтернатив α, так 

α=x1, x2, x3 … xp; x1, x2, x3 … xp NUT
Замечание. Для упрощения метода предположим, что правая часть любой продукции не может быть пустой строкой. 
Суть данного метода можно представить в виде следующей последовательности шагов, выполнение которых повторяется в процессе чтения входной цепи символов.
1. Определить корень дерева разбора и пометить его S N. Считать его активной вершиной.
2. Если активная вершина помечена некоторым нетерминированным символом A, то выбрать первую альтернативу этого нетерминированного α=x1, x2, x3 … xp и определить р новых вершин дерева разбора, являющихся непосредственно последовательностью вершины А, пометить их x1, x2, x3 … xp, соответственно (→) и сделать вершину х1 активной.
3. Если активная вершина помечена а T, то сравнить его с очередным символом входной цепочки. 
Сравниваемые символы совпали, тогда сделать активной вершиной дерева (лист) правее а и перейти к следующим символам входной цепочки. 
Символы не совпали, то выполним возврат к предыдущему уровню дерева разбора и соответствующему символу входной цепочки. Повторяя шаг 2 для следующего альтернативного нетерминала, если все альтернативы данного нетерминала исследованы, то возврат на более высокий уровень дерева и соответствующего символа и т.д.
4. Повтор пункта 2 и 3 до тех пор, пока не будет найден разбор входной цепочки или исследованы все возможные альтернативы. 
Разбор завершён успешно если листья построенного дерева помечены терминальными символами и самый правый лист соответствует последнему символу входной цепочки.
Замечание. Порядок нумерации альтернатив влияет на скорость работы метода.
Пример.

SE;
ET+E | T;
Ti*T | i
Порождая арифметические выражения +, i, –, всегда завершаются « ; ».

Перенумеруем символы входной цепочки.

Это дерево показывает, что входная цепочка является цепочкой заданного языка и порождает следующие 
продукции грамматики:

Замечание. Метод требует чтобы используемая КС грамматика не содержала продукции с левой рекурсией, т.е.:

т.к. это ведёт к зацикливанию метода.
Если бы в рассматриваемом случае грамматика содержала правила E→E+T, то

Замечание. Существующий 
формальный алгоритм позволяет преобразовывать грамматику с левой рекурсией в эквивалентную ей грамматику без левой рекурсии.
Замечание. Метод – учебный показывает идею, из-за его трудоёмкости на его базе разрабатывают практический метод разбора – метод рекурсивного спуска.


 

А также другие работы, которые могут Вас заинтересовать

64072. Улаштування однорівневої підвісної стелі. Монтаж вимикачів, розеток, відкритих та схованих електропроводок 3.08 MB
  Для передачі й розподілу електричної енергії використовуються повітряні лінії електропередач кабельні лінії в цехах промислових підприємств шинопроводи та електропроводки які виконують з металевих проводів із алюмінію сталі та міді. Інструменти для виконання робіт Набір паяльників для паяння жил проводів і кабелів.
64073. РОЛЬ ЗАДАЧ В УСИЛЕНИИ ПРИКЛАДНОЙ НАПРАВЛЕННОСТИ ШКОЛЬНОГО КУРСА ИНФОРМАТИКА И ИКТ 952.5 KB
  Прикладная направленность школьного курса информатики и пути ее реализации. Такое широкое использование информатики в различных сферах жизни человека подчеркивает важность изучения в школе именно прикладных аспектов этой науки.
64074. Двигатель внутреннего сгорания 249 KB
  Особенностью тепловых двигателей этого типа является то что процесс сгорания топливовоздушной смеси и преобразование тепловой энергии в механическую происходят непосредственно в цилиндре двигателя. Первыми двигателями внутреннего сгорания работавшими на газовом топливе были двухтактные двигатели...
64075. ПОРІВНЯЛЬНИЙ АНАЛІЗ ЗАСОБІВ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ІНЖЕНЕРНОЇ КОМП’ЮТЕРНОЇ ГРАФІКИ 1.12 MB
  Автоматизоване проектування — проектування, при якому окремі перетворення об'єкта й (або) алгоритму його функціонування або алгоритму процесу, а також описи різноманітними мовами здійснюються взаємодією людини та комп'ютера.