- •Теория алгоритмов Алгоритм и его свойства
- •Формализация понятия «алгоритм»
- •Машины Поста
- •Машины Тьюринга
- •Нормальные алгорифмы Маркова
- •Рекурсивные функции
- •Сложность алгоритма
- •7. Формальные грамматики
- •7.1. Понятие формальной грамматики
- •7.2. Деревья вывода
- •7.3. Классификация языков по Хомскому
- •7.4. Распознающие автоматы
- •7.5. Понятие транслятора
- •7.6. Основные функции компилятора. Лексический анализ
- •7.7. Переход от недетерминированного распознающего автомата к детерминированному
- •7.8. Переход от праволинейной грамматики к автоматной
- •7.10. Детерминированные автоматы с магазинной памятью
7.10. Детерминированные автоматы с магазинной памятью
(МП-автоматы)
Есть «промежуточная» математическая модель между автоматами и контекстно-свободными грамматиками – автомат с магазинной памятью. (МП-автомат).
Существует достаточно распространенная задача – задача определения парности скобок. Однако ее нельзя представить автоматной грамматикой.
Соответсвующая грамматика может выглядеть следующим образом:
S(S)
SSS
S
МП-автомат состоит из входной ленты, в ячейках которой записывается анализируемая строка (┤-конец строки), устройства управления и разбитого на ячейки магазина (стека). - символ пустого магазина. Устройство управления автомата может )."помнить" состояние (S1…).
Требуется распознать: ( ( ) ( ) )
( ( ) ( ) ) ┤
Работу автомата можно описать программой.
S1 |
X |
|
( |
X |
X |
) |
|
|
┤ |
|
+ |
Здесь и далее используются обозначения:
- поместить строку в вершину магазина.
- заменить верхний символ магазина на строку .
- убрать символ из вершины магазина.
- сдвинуться на шаг вправо по входной строке.
> < - стоять на месте.
- отвергнуть.
+ - принять.
S - State - состояние МП-автомата (на каждое состояние своя таблица, здесь одно состояние S1).
[S1] ( ( ) ( ) ) ┤
x [S1] ( ( ) ( ) ) ┤
xx [S1] ( ( ) ( ) ) ┤
x [S1] ( ( ) ( ) ) ┤
xx [S1] ( ( ) ( ) ) ┤
x [S1] ( ( ) ( ) ) ┤
[S1] ( ( ) ( ) ) ┤
Задача распознавания вложенных скобок "типа матрешка" сложнее и для ее распознавания требуется МП-автомат с двумя состояниями:
( ( ( ) ) )
S2 |
X |
|
( |
|
|
) |
S2 |
|
┤ |
|
+ |
S1 |
X |
|
( |
S1 X |
S1 X |
) |
S2 |
|
┤ |
|
+ |
При встрече первой закрывающей скобки МП автомат меняет состояние S1 на состояние S2.