Вход

Построение LL(1)-анализатора

Рекомендуемая категория для самостоятельной подготовки:
Контрольная работа*
Код 289381
Дата создания 09 сентября 2014
Страниц 5
Мы сможем обработать ваш заказ (!) 22 апреля в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
480руб.
КУПИТЬ

Описание

i. Для грамматики G = {{S,A,B}, {a,c,b}, {P},S}
P:
SSAbB|a
Aab|aa|
BBc|
Постройте эквивалентную LL(1)-грамматику G1
ii. Постройте LL(1)-анализатор для G1
iii. Укажите последовательность конфигураций анализатора при обработке слова aabb
...

Содержание

Построение LL(1)-анализатора

Введение

Построение LL(1)-анализатора

Фрагмент работы для ознакомления

ВЫБОР (А®a)=FIRST(a), если a—не аннулирующая, и
ВЫБОР (А®a) = FIRST (a)\{}  FOLLOW (А), если a — аннулирующая цепочка.
При этом FOLLOW (А) — множество следую­щих за А терминалов в промежуточной цепочке, выводимой из S$, где S — аксиома грамматики и $ — концевой маркер.
То есть ВЫБОР(Аα) = FIRST(αFOLLOW(A)).
Таким образом, построение множеств ВЫБОР и их пересечений дает возможность проверить, является ли заданная КС-грамматика грамматикой типа LL(1).
Проверим, является ли заданная КС – грамматика грамматикой типа LL(1). Построим множества ВЫБОР:
ВЫБОР(SaS’)={a}
ВЫБОР(S’AbBS’)={a,b}
ВЫБОР(S’)={$}
ВЫБОР(BB’)={c}
ВЫБОР(B’cB’)={c}
ВЫБОР(B’)={a,b,$}
ВЫБОР(АаC)={a}
ВЫБОР(A)={b}
ВЫБОР(Ca)={a}
ВЫБОР(Cb)={b}
Так как множества ВЫБОР не пересекаются, данная грамматика является LL(1)-грамматикой.
2) Построим LL(1)-анализатор.
Для того чтобы построить LL(1)-анализатор для LL(1)-грамматики, нужно заполнить управляющую таблицу. Элементами таблицы являются либо правила, либо спецсимвол «Ошибка». Правила заполнения таковы. M[A,a]=p для всякого нетерминала A  N, правила p: Aα, a FIRST(αFOLLOW(A)). В остальных случаях – спецсимвол «Ошибка».
Таблица 1 – Управляющая таблица
a
b
c
$
S
SaS’
Ошибка
Ошибка
Ошибка
S’
S’AbBS’
S’AbBS’
Ошибка
S’
B
Ошибка
Ошибка
BB’
Ошибка
B’
B’
B’
B’cB’
B’
A
АаC
А
Ошибка
Ошибка
C
Ca
Cb
Ошибка
Ошибка
Проверим работу LL(1)-анализатора путем построения его последовательности конфигураций при обработке слова aabb.
Процесс разбора цепочки заключается в следующем: на каждом шаге разбора считывается верхний символ v из стека анализатора и берется крайний символ t входной цепочки.
Если v – терминальный символ, совпадает с t, то они оба уничтожаются и происходит сдвиг.

Список литературы

Построение LL(1)-анализатора
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00486
© Рефератбанк, 2002 - 2024