
- •Лекция 1 Список рекомендуемой литературы
- •Теория формальных языков. Модели языка по Хомскому
- •Обозначения
- •Лекция 2 Неоднозначность грамматики
- •Укорачивающие контекстно-свободные грамматики
- •Автоматные грамматики
- •Задача разбора
- •Нормальные формы Бэкуса-Наура. Б.Н.Ф. – нотация
- •Лекция 3
- •Контекстные условия
- •Конечные автоматы
- •Связь автоматных грамматик и конечных автоматов
- •Минимизация автоматов
- •Лекция 4 Машина Тьюринга
- •Минимизация конечного автомата
- •Кс-языки и их связь с мп-автоматами. Магазинная память (мп)
- •Мп-автоматы
- •Мп-автомат, распознающий язык {0n 1n | nN}
- •Графическое описание мп-автомата
- •Лекция 5
- •Совместимые состояния частичных автоматов
- •Нахождение максимальной группировки
- •Построение минимального частичного автомата
- •Модель динамического поведения. Асинхронный процесс как метамодель
- •Лекция 6 Асинхронный процесс
- •Лекция 7 Сети Петри
- •Пространство состояний сетей Петри
- •Анализ сетей Петри
- •Методы анализа сетей Петри. Дерево достижимости
- •Лекция 8 Матричные уравнения
- •Моделирование с помощью сетей Петри
- •События и условия
- •Одновременность и конфликт
Кс-языки и их связь с мп-автоматами. Магазинная память (мп)
Язык вида {0n 1n /n=1,2,…} не является автоматным, а является контекстно-свободным (КС) языком. Каждый автоматный язык можно распознать конечным автоматом, который допускает цепочки этого языка, т.е. любому автоматному языку соответствует конечный автомат.
Покажем, что приведённому КС-языку не соответствует ни один конечный автомат. Предположим противное. Пусть у К-автомата m состояний. Если m<n, то для запоминания первых n нулей в цепочке потребуется n состояний, что больше числа состояний автомата.
Любая КС грамматика
имеет правила вида
где
.
У укорачивающей КС-грамматики допустимо,
чтобы
.
Опишем укорачивающую КС-грамматику (УКС):
S→aAbS
S→b
A→SAc
A→ε
Примеры некоторых выводов:
S
b
2.
SaAbS
aSAcbS
aScbS
abcbS
abcbb
S*aScbS
S
*abcbb
Дерево вывода.
Продемонстрируем, как оно строится:
S
a A b S
S A c
ε
слева направо aScbS
Дерево вывода отражает построение цепочки. Во многих трансляторах языков программирования используют древовидное построение цепочки, и дерево строится либо снизу вверх, либо сверху вниз. В дереве порядок подстановки скрыт, поэтому может быть много выводов, соответствующих одному и тому же дереву. Однако, если на каждом шаге при выводе заменять самый левый нетерминал (или правый в зависимости от договорённости), то получается так называемый канонический вывод. Для каждого дерева существует единственный канонический вывод. Цепочке языка может соответствовать более одного дерева вывода. В этом случае говорят, что грамматика неоднозначна.
Мп-автоматы
В
качестве распознавателей для КС-языков
используются МП-автоматы. Если в качестве
языка рассматривать конструкции
конкретного алгоритмического языка,
то для их распознавания использовать
конечный автомат невозможно. Это связано
с наличием в языках скобочных конструкций
(begin-end, ( ), { }). Память МП-автомата дополняется
магазином (стеком), т.е. лентой, имеющей
вид:
← конец
МП-автомат – это
набор М={Q,A,C,z,q0,F,δ},
где Q –множество состояний, A – входной
алфавит, С – магазинный алфавит, zC
– маркер магазина (признак пустоты
магазина), q0
Q
– начальное состояние, F
Q
– набор принимающих (заключительных)
состояний, δ – отображение следующего
вида: δ:Q×A×C*→Q×C*.
Конфигурацией МП-автомата называют следующую тройку (q,ω,α), где q – состояние, ω – некоторое слово из А*, α – некоторое слово из С*.
За один такт работы автомат переходит от одной конфигурации к другой (q,aω, αz)→(q’,ω,αγz). Переход обозначает следующее: первоначально автомат находится в состоянии q и непросмотренная цепочка аω (маркер магазина z всегда находится в верхней части магазина), на вход автомату был подан символ а. В результате этого автомат перешёл в состояние q’ и непросмотренной осталась цепочка ω. В магазин была дописана цепочка γ.
Для такого такта
(q,a,α)→(q’,αγ).В ситуации, когда цепочка
ω-конфигурации является пустой, считается,
что цепочка на входной ленте просмотрена,
и работа автомата прекращается.
Конфигурация (f,ε,α) является заключительной,
и если fF,
то это означает, что исходная цепочка
принимается автоматом.