Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры_по тяпу готовые.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
952.32 Кб
Скачать

19. Активный префикс. Обосновать, что основа всегда формируется в вершине стека.

Множество префиксов правой сентенциальной формы, которые могут появиться в стеке при разборе методом «сдвиг-свертка» наз-ся активными префиксами.

Активный viable – с английского «способный к жизни», «жизнеспособный».

Активные префиксы можно распознать конечным автоматом, который будет решать, какую команду можно выполнить: сдвиг, свертка, ошибка. Необходимо убедиться, что основа всегда появляется на поверхности стека и не может сформироваться внутри него. Чтобы убедится в этом нужно рассмотреть два случая: 1) Когда есть в правой части нетерминал: S=>* αAz => (используя продукцию A->βBy) αβByz => (B-> γ) αβγyz 2) когда терминалов нет: S * α B x A z (A → y)α B x y z (B → γ) α γ x y z

В данном случае в обоих примерах основой является терминал z

Рассмотрим состояние стека в первом случае:

стек $ α β γ Буфер y z $

После свертки:

стек $ α β B Буфер y z $

Сдвиг

стек $ α β B y Буфер y z $

Рассмотрим состояние стека во втором случае:

стек $ α γ Буфер x y z $

После свертки

стек $ α B Буфер x y z $

Сдвиг-Сдвиг

стек $ α B x y Буфер z $

В обоих случаях основа S формируется в вершине стека. Стек содержит префикс правой сентенциальной формы.

27. Синтезируемые атрибуты. Их обработка в алгоритме сдвиг–свертка.

Атрибутные грамматики – продукции КС грамматики, которые снабжены атрибутами и функциями, вычисляющие эти атрибуты. Они являются расширением контекстно-свободными грамматик. С грамматическими символами связывают множество атрибутов. Синтезируемые атрибуты вычисляют свои значения, используя только значения атрибутов потомков. Наследуемые атрибуты вычисляют свои значения, обращаясь к братьям и родителям Атрибутные грамматики, которые используют только синтезируемые атрибуты, называются S-атрибутными грамматиками.

Вычисление синтез. атрибутов: В соответствие каждой продукции ставиться семантическое правило. Атрибуты хранятся в стеке вместе с грамматическими символами (в отдельном поле записи или отдельной таблицы связанной индексами). Когда в стек попадет терминал вместе с ним заноситься и его лексическое значение. Когда выполняется свертка, тогда из стека извлекаются атрибуты правой части продукции и исходя из семантического правила выполняется вычисление атрибута нетерминала левой части продукции (значение записывается также в стек). Указатель на вершину стека атрибута равен указателю стека грамматических символов.

яв-ся узлами графа зависимости. Дуги этого графа направлены и обозначают зав-ть одного атрибута от другого. От х зависит а – это как мы читаем стрелки.

23. Переходы в slr (1) анализаторе. Функция goto. Допустимая ситуация.

Переход представляет собой множество ситуаций, в которые можно перейти из множества ситуаций I по грамматическому символу х, то есть по терминалу или нетерминалу. При выполнении функции (goto (I,x)) строят замыкание множества состояний вида [Ax], если в I есть ситуация [Ax], то есть точка переходит за символ х в ситуациях. С помощью этих переходов строится таблица goto.

Функция goto (I, X), где I-множество ситуаций, X - символ грамматики. goto (I, X) определяется как замыкание множества ситуаций , принадлежащих I. Функция возвращает новое состояние конечного автомата.

Пусть есть I={[E’→E*], [E→E*+T]}

Построим результат Goto(I,+):

[E→*E+T]

[T →*T•F]

[T →*F]

[F →*(E)]

[F →*id].

Ситуация A->β1*β2 называется допустимой для активного префикса αβ1 если существует порождение S’ =>R* αAq =>R αβ1β2γ. Ситуация может быть допустимой для многих активных префиксов.

Главная теорема LR-разбора: Множество допустимых ситуаций активного префикса γ – в точности то множество ситуаций, которые допустимы из начального состояния по пути, помеченному γ в детерминированном конечном автомате, построенному из канонической совокупности множеств ситуаций и переходов, определенных функцией goto.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]