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

33. Контекстно–зависимый анализ. Синтаксически управляемая трансляция.

В процессе синтаксического анализа формируется дерево разбора, вершинами являются грамматические символы. Ветви дерева придают определенный смысл. Для этого грамм. символам добавляют атрибуты, которые и отражают смысл конструкции языка. В процессе построения дерева разбора можно вычислить его значения. Вычисления выполняются в соответствии с семантическими правилами, связываются с продукцией грамматики.

E0→E1+E2 { E0:=E1+E2}

Есть 2 способа объединения продукций семантических правил.

1)семантически управляемые определения — это высокоуровневое описание процесса трансляции, в нем скрыты детали реализации и не требуется явно определять порядок вычисления семантических правил.

2)Схемы трансляции в этом случае указывают порядок вычисления семантических правил.

Входная последовательность лексических знаков→дерево разбора→граф зависимостей→ порядок выполнения семантических правил

В ряде случаев удается сразу выполнить семантические правила в процессе разбора, без построения дерева разбора и графа зависимостей.

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

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

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

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

Являются расширением контекстно-свободными грамматик. С грамматическими символами связывают множество атрибутов. Дерево будет в вершинах иметь набор переменных. Это дерево называется аннотированным деревом разбора. Значения атрибутов определяется семантическими правилами, связанными с продукциями грамматики в зависимости от вида семантических правил атрибуты м.б. синтезируемыми и наследуемыми.

Синтезируемые — вычисляют свои значения не используя атрибуты своих «детей».

Семантические правила получают значения терминалов исходя из значений лексических символов. Семантические правила могут иметь побочный эффект — формировать таблицу символов. Пример: Синтаксически управляемое определение с синтезируемыми атрибутами. Возьмем грамматику арифметических выражений, и будем транслировать выражения в результат.

Наследуемые атрибуты вычисляют свои значения, обращаясь к братьям и родителям. С каждой грамматикой связано одно или несколько правил. Если атрибутные грамматики используют только синтезируемые атрибуты, они называются S-атрибуты грамматики.

Пример?