Главная страница

Курсовая Лексический анализатор. Краткий курс лекций. Курс лекций по спецкурсу Методы трансляции


Скачать 0.64 Mb.
НазваниеКурс лекций по спецкурсу Методы трансляции
АнкорКурсовая Лексический анализатор
Дата29.12.2019
Размер0.64 Mb.
Формат файлаdoc
Имя файлаКраткий курс лекций.doc
ТипКурс лекций
#102547
страница7 из 19
1   2   3   4   5   6   7   8   9   10   ...   19
Вывод отношений в грамматиках с простым предшествованием


Отношения предшествования можно найти, непосредственно пользуясь определениями. Однако для сложных грамматик это сделать достаточно трудно (нужно не только найти отношения, но и показать отсутствие других отношений). Поэтому используют специальные методы определения отношений.

Для определения отношений предшествования предварительно для каждого нетерминального символа U находятся два множества:

L(U) – множество самых левых символов в разложениях U, т.е. множество таких символов q, что существует вывод Uqz;

R(U) – множество самых правых символов в разложениях U, т.е. множество таких символов p, что существует вывод Uzp.

Построение множеств L(U), R(U) состоит из следующих шагов:

  1. для каждого правила вида U → z в L(U) заносится самый левый символ правой части, в R(U) – самый правый символ;

  2. если L(U) содержит нетерминальные символы U1, U2, ..., то L(U) дополняется символами, входящими в L(U1), L(U2) ... и не входящими в L(U). Аналогично дополняется R(U);

  3. шаг 2 повторяется, пока L(U), R(U) не перестанут изменяться.

Пример:

Z → bMb Грамматика определяет цепочки символов

M → (N | a bab, b(aa)b, b((aa)a)b, b(((aa)a)a)b и т.д.

N → Ma)

Построение множеств левых и правых символов для нетерминалов:

L(U), R(U) после первого шага окончательно

U

L(U)

R(U)




U

L(U)

R(U)

Z

b

b




Z

b

b

M

(, a

N, a




M

(, a

N, a, )

N

M

)




N

M, (, a

)
1   2   3   4   5   6   7   8   9   10   ...   19


написать администратору сайта