2) Пусть множество
, где ни одна из цепочек
не начинается с
, если k£i заменим
– правила правилами:
![]()
,
где
– новый нетерминал. Правые части всех
– правил начинаются теперь с терминала или с
, для которого k>i.
3) Если i=n, то полученную грамматику считаем результатом и останавливаемся, в противном случае i=i+1 и j=1.
4) Заменим каждое правило
правилами
, где
для всех
- правил. Так как правая часть каждого
правила начинается уже с терминала или
для к>j, то правая часть каждого
- правила будет теперь обладать этими свойствами.
5) Если j=i-1, перейти к шагу 2), в противном случае положить i=i+1 и перейти к шагу 4).
На основании вышесказанного можно однозначно доказать теорему, что каждый КС-язык определяется нелеворекурсивной грамматикой.
Определение.
КС-грамматика G = (N, S, Р, S) называется грамматикой в форме Грейбах, если в ней нет е- правил и каждое правило из Р, отличное от S®e, имеет вид А®aa, где аÎS, aÎN*.
3.11. Автоматы с магазинной памятью
Автоматы с магазинной памятью являются естественной моделью синтаксического анализатора КС-языков.
Автомат с магазинной памятью – это односторонний распознаватель, в потенциально бесконечной памяти которого элементы информации хранятся и используются так же, как и патроны автоматического оружия, т. е. в каждый момент доступен только верхний элемент магазина (рис. 3.11).
|
|
| Входная лента | |||||
Управляющее Устройство с конечной памятью |
| |||||||
| ||||||||
Магазин |
|
Рис. 3.11. Автомат с магазинной памятью
Все КС-языки определяются недетерминированными автоматами с магазинной памятью, а практически все языки программирования определяются детерминированными автоматами с магазинной памятью.
3.11.1. Основные определения
Определение.
Автомат с магазинной памятью (МП-автомат) – это семерка
,
где
- конечное множество символов состояния, представляющих всевозможные состояния управляющего устройства;
S - конечный входной алфавит;
G - конечный алфавит магазинных символов;
d - отображение множества
во множество конечных подмножеств множества
;
- начальное состояние управляющего устройства;
- символ, находящийся в магазине в начальный момент (начальный символ);
- множество заключительных состояний.
Конфигурацией МП-автомата Р называется тройка содержащая
,
где
- текущее состояние устройства;
- неиспользованная часть входной цепочки; первый символ цепочки
находится под входной головкой; если
, то считается, что вся входная лента прочитана;
- содержимое магазина; самый левый символ цепочки
считается верхним символом магазина; если
, то магазин считается пустым.
Такт работы МП-автомата Р будет представляться в виде бинарного отношения ⊢, определенного на конфигурациях. Будем писать
⊢
,
если множество
содержит
, где
,
,
,
и
.
Если а=е, то говорят о том, что МП-автомат Р, находясь в состоянии q и имея а в качестве текущего входного символа, расположенного под входной головкой, а Z – в качестве верхнего символа магазина, может перейти в состояние
, сдвинуть головку на одну ячейку вправо и заменить верхний символ магазина цепочкой g магазинных символов. Если g=е, то верхний символ удаляется из магазина, тем самым магазинный список сокращается.
Если а=е, будем называть этот такт е-тактом. В е-такте текущий входной символ не принимается во внимание и входная головка не сдвигается. Однако состояние управляющего устройства и содержимое памяти можут измениться. Заметим, что е-такт может происходить тогда, когда вся цепочка прочитана.
Начальной конфигурацией МП-автомата Р называется конфигурация вида
, где
, т. е. управляющее устройство находится в начальном состоянии, входная лента содержит цепочку, которую нужно распознать, и в магазине есть только начальный символ
.
Заключительная конфигурация – это конфигурация вида
, где
и
.
Говорят, что цепочка w допускается МП-автоматом Р, если
⊢*
для некоторых
и
.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |



