Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпорки.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
352.68 Кб
Скачать
  1. Атрибутные грамматики. Наследуемые и синтезируемые атрибуты.

Атрибуты переменной: имя, значение, тип.

1 Синтезируемые атрибуты

Грамматика (атрибутные правила):

  1. <S> <E>p{res}r r p

  2. <E>q <E>p+<T>r q p+r

  3. <E>q <T>r q r

  4. <T>q <T>p*<P>r q p*r

  5. <T>q <P>r q r

  6. <P>q (<E>r) q r

  7. <P>q cr q r

Терминальные символы: {+, *, (, ), }

Проверим, принадлежит ли выражение c*(c+c) данной грамматике. Подставим в выражение значения 4*(6+2)

<S> {res32}

<E>32

<T>32

<T>4 * <P>8

<P>4 ( <E> )8

c4 <E>6 + <T>2

<T>6 <P>2

<P>6 c2

c6

В рассмотренном примере атрибуты были определены только у терминальных символов. Далее мы определяли атрибуты у нетерминальных символов, поднимаясь от листьев синтаксического дерева к его корню. Такая операция называется синтезом атрибутов. Значения переменных p,q,r – значения атрибутов (в данном случае констант), которые были получены на этапе лексического анализа и записаны в таблицу констант. Итак, атрибуты есть как у терминальных, так и у нетерминальных символов.

{res} – процедура, которая произведет операцию замены всего выражения на константу.

Синтезируемыми атрибутами также могут быть метки.

2 Наследуемые атрибуты

Грамматика:

  1. <описание> type V <список переменных>

  2. <список переменных> , V <список переменных>

  3. <список переменных> ε

Терминальные символы: {type, V, “,”, }

Соответствует грамматике: type V,V,V

Не соответствуют грамматике: V, type; type ,V; type V,

Примеры: int a,b,c; char ch,chr

Можно получить атрибутивную грамматику:

  1. <описание> typet Vp {DT}t1,p1 <список переменных>t2 (t1,t2) t; p1 p

  2. <список переменных>t , Vp {DT}t1,p1 <список переменных>t2 (t1,t2) t; p1 p

  3. <список переменных>t ε

Проверим, принадлежит ли выражение typereal V1,V2,V3 данной грамматике

<описание>

typereal V1 {DT}real,1 <список переменных>real

, V2 {DT}real,2 <список переменных>real

, V3 {DT}real,3 <список переменных>real

ε

В приведенном примере мы имели распространение атрибутов от корня дерева к его листьям (нисходящий метод распространения атрибутов). Этот метод называется наследованием атрибутов, а атрибуты, полученные таким образом, называются наследуемыми атрибутами.

  1. Использование автоматов с магазинной памятью для нисходящего разбора.

1 Метод МП-автомата (автомата с магазинной памятью)

Автомат с МП – это математическая модель, с помощью которой мы можем решать задачи распознавания КСЕ.

Автомат с МП:

  1. Состояние (S)

    1. Сменить состояние (S’)

  2. Магазин (синоним: стек)

    1. Втолкнуть в магазин (A)

    2. Вытолкнуть из магазина (берется верхний элемент)

    3. Оставить без изменения

  3. Входная цепочка

    1. Сдвиг указателя

    2. Держать (не давать сдвигаться)

Использовать состояния в дальнейшем мы не будем.

МП-автомат определяется пятью элементами:

  1. конечное множество входных символов (алфавит), дополненное знаком окончания цепочки

  2. конечное множество магазинных символов, дополненное знаком окончания цепочки

  3. конечное множество состояний, причем одно из состояний выделено как начальное

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

  5. начальное содержимое магазина

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