Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
114
Добавлен:
02.05.2014
Размер:
393.73 Кб
Скачать

3.Контексная гр-ка

Рас-м принцип построения синтак-х диаграмм на пр-ре понятия множитель(их строят для разбора синтаксиса языка прогр-ния).

Любой путь по этой диаг-ме проходит ч/з 1н или неск-ко узлов. Узел м.б.прямоугольным или круглым. Каж-у прям-му узлу соотв-ет своя синтакс.диаг-ма, п/э-у такой узел наз-ся нетерминальным. Круг.узел наз-ся терминальным(он больше не раскрывается).

Нетерм.сим-лы – пропис.буквы, термин. – строчные. Всякое дерево вывода начинается с корня S в соответствии с правилами вывода происходит дв-е по ветвям строющегося дерева до тех пор, пока все нетерм-е символы не буд.раскрыты ч/з терм-е. Мн-во терм-х симв-в образуют висящие вершины, если их прочесть слева направо, то получится строка.

Контексная гр-ка(К/Г) – это совокуп-ть 4х объектов: G=(N,T,P,S), где N-конеч.мн-во нетерм.симв-в, T-кон.мн-во терм.симв, P-кон.мн-во продук-й вида α→β, где α(NUT)+-без пустой строки, β(NUT)*т.е.м/о получить и пуст.строку, S-начальный символ.

Если строка α(NUT)* за 1н или неск-ко шагов выводится из начального сим-ла S, то такую строку наз-т сентенциальной формой К/Г-ки G.

Сентенцией гр-ки G наз-т произ-ю сентенциальную форму, составл-ю из симв-в мн-ва Т*, т.е.произ.строку терм.сим-в, кот-я м.б.получена из нач-го сим-ла S. Тогда мн-во всех сентенций гр-ки G наз-т языком, пораждаемым гр-кой G и обоз-т L(G).

L(G)={x Т* |SG*х}.

4. Контексно-свободная гр-ка(кс/г).

В форм.языках чаще всего в левой части продукции испол-ся 1н нетерм-й симв-л, кот-й явл-ся единс-м симв-м слева. К/Г-ка, удовл-щая этому требованию наз-ся КС/Г-ой. Строгое опред-е КС/Г-ки : гр-ка G=(N,T,P,S), в кот-й мн-во Pсодержит продук-ии вида α→β, где αN, β(NUT)*. Трмин КС возник, т.к. люб.симв-л αN в сентанц.форме гр-ки G м.б.раскрыт согластно продукции из α→β,независимо от того, какими строками он окружен внутри самой сент.формы.

КС/Г-ку м/о представить виде дерева вывода. Корнем кот-го явл-ся нач.символ S, строка терм-х симв-в, или сентенция – последов-ть висящих вершин, читаемых в порядке слева направа.Промеж-е узлы дерева – нетерм-е верш-ны.

– если для люб.строки хL(G) все возможные схемы вывода имеют одно и тоже дерево вывода, то гр-ка наз. однозначная КС/Г-кой. (S→AB; A→aA|a; B→bB|b –строка а3b2). Если одной и тойже строке соотв-т разл.деревья, то гр-ка наз.неоднозна-й(S→SbS|ScS|a-строка abaca).

В дан.опред-ии КС/Г-ки ее продукции им.вид: α→β, где αN, β(NUT)*. Значит корректна запись А→ε, где ε-терм.симол. Гр-ка не им-щая ε-прод-ции наз. ε-своб-й. Было бы идеально раб-ть т/о с ε-своб-ми гр-ми. Для преобр-ия гр-ки G в гр-ку G’, кот-я ε-своб-на н/о:

1. объединить все имеющиеся в Р ε-продукции в мн-во Р’.

2. все нетерм.сим-лы, т.ч. АG* ε. Каж.прод-ции из Р’поставим в соотв-ие такую прод-цию, что в ее прав.части, посрав-ию с исход-й прод-ей Р опущены неск-ко нетермин-х сим-в.

// S→[E]|E;

E→T|E+T|E-T;

T→F|T*F|T/F;

F→a|b|c|ε.

S→[E]|[]|E;

E→T|E+T|E-T|E+|E-|+T|-T|+|-|;

T→F|T*F|T/F|T*|T/|*F|/F|*|/|;

F→a|b|c|.

Соседние файлы в папке Шпоры по теории автоматов