
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ ”ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Контексно-вільні граматики та автомати з магазинною пам’яттю методичні вказівки
до лабораторних робіт №7-8
з дисципліни ”Теорія формальних мов”
для студентів базового напряму ”Системний аналіз”
Затверджено
на засіданні кафедри інформаційних систем та мереж
Протокол №1 від 22.08.2011р.
Львів-2011
Контексно-вільні граматики та автомати з магазинною пам’яттю: Методичні вказівки до лабораторної роботи №7-8 / Укл.: Л.М.Захарія. – Львів: Видавництво Національного університету ”Львівська політехніка”, 2011. – 16 с.
Укладачі Захарія Л.М., канд. фіз.-мат. наук, доц.
Відповідальний за випуск Пасічник В.В., доктор техн. наук., проф.
Рецензенти Верес О.М., канд.. техн. наук, доц.
Контекстно-свободные грамматики и автоматы с магазинной памятью
Пусть G = (N, T, P, S) - КС-грамматика. Введем несколько важных понятий и определений.
Вывод, в котором в любой сентенциальной форме на каждом шаге делается подстановка самого левого нетерминала, называется левосторонним. Если S=>* u в процессе левостороннего вывода, то u - левая сентенциальная форма. Аналогично определим правосторонний вывод. Обозначим шаги левого (правого) вывода =>l (=>r).
Упорядоченным графом называется пара (V,E), где V есть множество вершин, а E - множество линейно упорядоченных списков дуг, каждый элемент которого имеет вид ((v, v1), (v, v2), ... , (v, vn)). Этот элемент указывает, что из вершины v выходят n дуг, причем первой из них считается дуга, входящая в вершину v1, второй - дуга, входящая в вершину v2, и т.д.
Упорядоченным помеченным деревом называется упорядоченный граф (V,E), основой которого является дерево и для которого определена функция f : V -> F (функция разметки) для некоторого множества F.
Упорядоченное помеченное дерево D называется деревом вывода (или деревом разбора ) цепочки w в КС-грамматике G = (N, T, P, S), если выполнены следующие условия:
(1) корень дерева D помечен S ;
(2)
каждый лист помечен либо
,
либо e
;
(3)
каждая внутренняя вершина помечена
нетерминалом
;
(4) если X - нетерминал, которым помечена внутренняя вершина и X1, ... , Xn - метки ее прямых потомков в указанном порядке, то X -> X1 ... Xk - правило из множества P ;
(5) Цепочка, составленная из выписанных слева направо меток листьев, равна w.
Процесс определения принадлежности данной строки языку, порождаемому данной грамматикой, и, в случае указанной принадлежности, построение дерева разбора для этой строки, называется синтаксическим анализом. Можно говорить о восстановлении дерева вывода (в частности, правостороннего или левостороннего) для строки, принадлежащей языку. По восстановленному выводу можно строить дерево разбора.
Грамматика G называется неоднозначной, если существует цепочка w, для которой имеется два или более различных деревьев вывода в G.
Грамматика
G
называется леворекурсивной, если в ней
имеется нетерминал A
такой, что для некоторой цепочки R
существует вывод
.
Автомат
с магазинной памятью (МП-автомат) - это
семерка
,
где
(1) Q - конечное множество состояний, представляющих всевозможные состояния управляющего устройства;
(2) T - конечный входной алфавит;
(3)
-
конечный алфавит магазинных символов
;
(4)
D
- отображение множества
в
множество конечных подмножеств
,
называемое функцией переходов ;
(5)
-
начальное состояние управляющего
устройства;
(6)
-
символ, находящийся в магазине в начальный
момент ( начальный символ магазина
);
(7)
-
множество заключительных состояний.
Конфигурация МП-автомата - это тройка (q, w, u), где
(1)
-
текущее состояние управляющего
устройства;
(2)
-
непрочитанная часть входной цепочки;
первый символ цепочки w находится под
входной головкой; если w
= e, то считается, что вся
входная лента прочитана;
(3)
-
содержимое магазина; самый левый символ
цепочки u считается верхним символом
магазина; если u
= e, то магазин считается
пустым.
Такт
работы МП-автомата M
будем представлять в виде бинарного
отношения
,
определенного на конфигурациях.
Будем писать
если
множество D(q,
a, Z) содержит (p,
v), где
и
(верхушка
магазина слева).
Начальной конфигурацией МП-автомата M называется конфигурация вида (q0, w, Z0), где , то есть управляющее устройство находится в начальном состоянии, входная лента содержит цепочку, которую нужно проанализировать, а в магазине имеется только начальный символ Z0.
>Заключительной
конфигурацией называется конфигурация
вида (q,
e, u), где
,
то есть управляющее устройство находится
в одном из заключительных состояний, а
входная цепочка целиком прочитана.
Введем
транзитивное и рефлексивно-транзитивное
замыкание отношения
,
а также его степень k > 0 (обозначаемые
,
и
соответственно).
Говорят,
что цепочка w
допускается МП-автоматом M,
если
для
некоторых
и
.
Множество всех цепочек, допускаемых автоматом M называется языком, допускаемым (распознаваемым, определяемым) автоматом M (обозначается L(M) ).
Пример 4.1. Рассмотрим МП-автомат
M = ({q0, q1, q2}, {a, b}, {Z, a, b}, D, q0, Z, {q2}),
у которого функция переходов D содержит элементы:
D(q0, a, Z) = {(q0, aZ)},
D(q0, b, Z) = {(q0, bZ)},
D(q0, a, a) = {(q0, aa), {q1, e)},
D(q0, a, b) = {(q0, ab)},
D(q0, b, a) = {(q0, ba)},
D(q0, b, b) = {(q0, bb), (q1, e)},
D(q1, a, a) = {(q1, e)},
D(q1, b, b) = {(q1, e)},
D(q1, e, Z) = {(q2, e)}.
Нетрудно
показать, что
,
где wR
обозначает обращение ("переворачивание")
цепочки w.
Иногда
допустимость определяют несколько
иначе: цепочка w допускается МП-автоматом
M,
если
для
некоторого
.
В таком случае говорят, что автомат
допускает цепочку опустошением
магазина. Эти определения эквивалентны,
ибо справедлива
Теорема 4.1. Язык допускается МП-автоматом тогда и только тогда, когда он допускается (некоторым другим автоматом) опустошением магазина.
Теорема 4.2. Язык является контекстно-свободным тогда и только тогда, когда он допускается МП-авто- матом.
Доказательство. Пусть G = (N, T, P, S) - КС-граммати- ка. Построим МП-автомат, допускающий язык L(G) опустошением магазина.
Пусть
,
где D
определяется следующим образом:
Если
, то
,
D(q, a, a) = {(q, e)} для всех .
Фактически,
этот МП-автомат в точности моделирует
все возможные выводы в грамматике G.
Нетрудно показать по индукции, что для
любой цепочки
вывод
S
=>+w
в грамматике G
существует тогда и только тогда, когда
существует последовательность тактов
автомата
M.
Наоборот,
пусть дан
-
МП- автомат, допускающий опустошением
магазина язык L.
Построим грамматику G, порождающую язык L.
Пусть
,
где P
состоит из правил следующего вида:
для всех .
Если
,
Если
, то
Нетерминалы и правила вывода грамматики определены так, что работе автомата M при обработке цепочки w соответствует левосторонний вывод w в грамматике G.
Индукцией
по числу шагов вывода в G
или числу тактов M
нетрудно показать, что
тогда
и только тогда, когда [qAp]
=>+
w.
Тогда,
если
,
то S
=> [q0Z0q]
=>+
w для некоторого
.
Следовательно,
и
поэтому
.
Аналогично, если
,
то
.
Значит, S
=>[q0Z0q]
=>+
w, и поэтому
.
Определение. Говорят, что КС-грамматика находится в нормальной форме Хомского, если каждое правило имеет вид:
(1) либо A -> BC, A, B, C - нетерминалы,
(2) либо A -> a, a - терминал,
(3) либо S -> e и в этом случае S - не встречается в правых частях правил.
Утверждение. Любую КС-грамматику можно преобразовать в эквивалентную ей в нормальной форме Хомского.