Автомат с магазинной памятьюВ теории автоматов автомат с магазинной памятью — это конечный автомат, который использует стек для хранения состояний. Формальное определение![]() В отличие от обычных конечных автоматов, автомат с магазинной памятью является набором[1] где
Память работает как стек, то есть для чтения доступен последний записанный в неё элемент. Таким образом, функция перехода является отображением . То есть, по комбинации текущего состояния, входного символа и символа на вершине магазина автомат выбирает следующее состояние и, возможно, символ для записи в магазин. В случае, когда в правой части автоматного правила присутствует , в магазин ничего не добавляется, а элемент с вершины стирается. Если магазин пуст, то срабатывают правила с в левой части. Класс языков, распознаваемых автоматами с магазинной памятью, совпадает с классом контекстно-свободных языков. В чистом виде автоматы с магазинной памятью используются крайне редко. Обычно эта модель используется для наглядного представления отличия обычных конечных автоматов от синтаксических грамматик. Реализация автоматов с магазинной памятью отличается от конечных автоматов тем, что текущее состояние автомата сильно зависит от любого предыдущего. Пример с использованием автомата с магазинной памятьюrepeat X := верхний символ магазина;
if X = терминал или $
then
if X = InSym
then
удалить X из магазина;
InSym := очередной символ;
else
error()
end
else /* X = нетерминал */
if M[X, InSym] = X->Y1Y2...Yk
then
удалить X из магазина;
поместить Yk, Yk-1, ..., Y1 в магазин
(Y1 на верхушку);
вывести правило X->Y1Y2...Yk
else
error() /* вход таблицы M пуст */
end
end
until X = $ /* магазин пуст */
Виды автоматов с магазинной памятьюСуществуют детерминированные и недетерминированные автоматы с магазинной памятью. Для недетерминированных автоматов (в отличие от детерминированных) существует два эквивалентных критерия завершения работы:
Детерминированный автомат завершает работу лишь тогда, когда достигает конечного состояния. См. также
Примечания
Литература
|
Portal di Ensiklopedia Dunia