Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Нисходящий синтаксический анализатор с возвратом.Содержание книги
Поиск на нашем сайте Алгоритм:
Содержит 4 переменные:
S – {f,b} f-вперед; b-назад; Х – исходный текст программы; L – входной магазин (стек) (расположена синтенциальная формула, выведена из начального символа к текущему шагу);
На вход подается входная строка Х и грамматика
(f,x,б,e) б-начальный символ грамматики;
1. Развертка.
2. а- поместили в выходной магазин - в вершине магазина находится терминал и он совпадает с 1-м символом входной строки.
3. - входная строка пуста и входной магазин пуст -
4. - переходим в состояние возврата, с этого момента начинается возврат.
5. Возврат по входной строке.
- у выходного магазина вершина справа – терминал.
6. - выходной магазин пустой, входной содержит 1-ый символ грамматики; - входная строка не принадлежит языку или программа записана с ошибкой, вывод построить нельзя.
7. а).
Если такого правила нет, то: б).
Пример:
На вход ab
- если уберем все терминалы, то оставшиеся правила дают вывод:
Нисходящий анализатор без возвратов (LL(1)).
Анализатор с возвратом работает для всех грамматик, которые не являются леворекурсивными. LL(1) анализатор можно построить для значительного более узкого числа грамматик.
Вывод из предыдущего примера:
Табл:
правила
- если на входе «а», то применим 1-е правило, если на входе «b», то применяем 2-е правило.
T(A,a)=i T-таблица - строки помечены терминалами; - столбцы помечены нетерминалами;
(f,x,б,e)
1. Развертка.
Если T(A,a)=i Если T(A,a)=Ø, то неудача
2. - взаимное уничтожение;
3. Неудача будет, если в таблице пустая клетка, т.е. нет i.
Не каждая грамматика является LL(1) грамматикой, иногда грамматику можно преобразовать в LL(1).
Грамматика ML для правила LL(1).
По правилу:
Z→</>/<=/>=/=/<>
Таблица с альтернативными правилами:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2017-02-07; просмотров: 260; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.005 с.) |