
- •Лекция 1 Список рекомендуемой литературы
- •Теория формальных языков. Модели языка по Хомскому
- •Обозначения
- •Лекция 2 Неоднозначность грамматики
- •Укорачивающие контекстно-свободные грамматики
- •Автоматные грамматики
- •Задача разбора
- •Нормальные формы Бэкуса-Наура. Б.Н.Ф. – нотация
- •Лекция 3
- •Контекстные условия
- •Конечные автоматы
- •Связь автоматных грамматик и конечных автоматов
- •Минимизация автоматов
- •Лекция 4 Машина Тьюринга
- •Минимизация конечного автомата
- •Кс-языки и их связь с мп-автоматами. Магазинная память (мп)
- •Мп-автоматы
- •Мп-автомат, распознающий язык {0n 1n | nN}
- •Графическое описание мп-автомата
- •Лекция 5
- •Совместимые состояния частичных автоматов
- •Нахождение максимальной группировки
- •Построение минимального частичного автомата
- •Модель динамического поведения. Асинхронный процесс как метамодель
- •Лекция 6 Асинхронный процесс
- •Лекция 7 Сети Петри
- •Пространство состояний сетей Петри
- •Анализ сетей Петри
- •Методы анализа сетей Петри. Дерево достижимости
- •Лекция 8 Матричные уравнения
- •Моделирование с помощью сетей Петри
- •События и условия
- •Одновременность и конфликт
Лекция 3
Для объявления
синтаксических единиц
для формальных языков, их описывают
через регулярные выражения следующим
образом:
Если в Ri
не входят нетерминалы, то эти правила
можно понимать как объявления новых
нетерминалов
в качестве обозначений или языков,
описанных через регулярные выраженияRi.
Если же нетерминалы
сами входят в регулярные выраженияR1,R2,…,Rn,
то говорят о системе рекурсивных
определений для нетерминалов
.
Через рекурсивное Б.Н.Ф.-правило
определяется, что нетерминалы
по мере необходимости стоят в качестве
определяемых формальных языковX
,X
,…,Xn
. Эти языки
можно охарактеризовать с помощью
индуктивных определений. Для этого, с
помощью следующих определений, вводят
последовательность регулярных выражений
.
Правая часть
равенства обозначает регулярное
выражение, которое возникает из
заменой всех синтаксических единиц
на регулярные выражения
.
С помощью этого определения получают
последовательности формальных языков
,
которые соответствуют регулярным
выражениям
.
Теперь можно определить формальные
языки Хj,
которые связываются с нетерминалами
.
Согласно этому
определению, какое-либо слово является
элементом формального языка Хj,
если оно для некоторого
содержится в формальном языке
.
Если должны быть описаны формальные языки, которые сами содержат символы, используемые в способе написания через Б.Н.Ф., обычно применяют следующее соглашение: символы, используемые в описываемом языке, подчёркиваются. Например:
::=,/,{},- - ::=,/,{ },-.
Пример: опишем Б.Н.Ф.-нотацию с помощью Б.Н.Ф.-нотации.
<рег_выр>::=<термин_символ>/<синт_един>/<рег_выр>/<рег_выр>/<рег_выр><рег_выр>/[рег_выр]/{рег_выр}*/{рег_выр}+/{}
Контекстные условия
Задание Б.Н.Ф.-правил позволяет описать схематически структуру тех последовательностей символов, которые должны быть восприняты, как программа на некотором языке программирования. Однако для таких последовательностей символов обычно существует ещё ряд дополнительных требований, которые невозможно описать с помощью Б.Н.Ф.-правил. Поэтому формируют дополнительно к Б.Н.Ф.-описаниям синтаксиса языка программирования ряд дополнительных условий. Контекстными условиями называют те условия, которые должны быть выполнены, чтобы последовательность символов рассматривалась как осмысленная программа. Подмножество цепочек, которые удовлетворяют этим условиям, называется множеством синтаксически-контекстно-корректных программ.
Контекстные условия обычно описываются с помощью естественного языка или же с помощью определённых ограничений, налагаемых на формальный язык, полученный с помощью Б.Н.Ф.-правил.
Конечные автоматы
Конечный автомат является простой моделью машин для переработки информации. Он представляет собой структуру из 5 элементов: A=<S,T,s0,S2,δ >, где
S – конечное множество состояний автоматов;
T – конечное множество входных символов;
s0S
– начальное состояние автомата;
S2
S
– множество заключительных состояний;
δ – функция переходов: S×T→ρ – некоторый набор объектов (для разных типов автоматов наборы различны)
Конечный автомат может быть представлен в виде графа. При этом в качестве вершин указываются состояния автомата. Функция δ задаёт дуги следующим образом: если δ(s,a)=s', то на графе имеется дуга (s,s´), на которой имеется пометка a.
Пример: Конечный автомат для проверки чётности количества единичек в двоичном числе.
Error: Reference source not found
Если s0=q0, то q1 сигнализирует о нечётном количестве единиц, а q0 – о чётном.
Автомат функционирует следующим образом: на вход подаётся некоторая цепочка в алфавите Т. Первоначально, автомат находится в состоянии s0 и пара s0 с первым символом цепочки, согласно функции переходов, определяет следующее состояние автомата. В новом состоянии, уже со вторым символом цепочки, определяется новый переход автомата, и так до исчерпания цепочки. После рассмотрения всей цепочки автомат остаётся в некотором состоянии:
0 1 1 0 1 1 1 0 1
q0 q0 q1 q0 q0 q1 q0 q1 q1 q0
Имеются разновидности конечных автоматов, которые помимо перехода из состояния в состояние выдают также некоторую цепочку символов, при этом алфавит, в котором формируется эта цепочка, может быть произвольным (в частности, может совпадать с алфавитом Т; в этом случае в качестве ρ(S) выступает пара: состояние, в которое перейдёт автомат, и символ, который он выдаст).
Пример:
Error: Reference source not found
10111000- входная цепочка – начальное состояние q0.
00101110 – генерирует выходную цепочку со смещением на 2 такта.
Множество цепочек, на которых работают конечные автоматы, называется регулярным.
Если X,Y – регулярные множества, то регулярными являются следующие множества:
.
Множество регулярных множеств замкнуто относительно операции конкатенации и операции итерации.
Регулярность множества означает, что для его распознавания достаточно конечного автомата.
Распознавание конечным автоматом предполагает следующую процедуру: на вход автомата подаётся цепочка и определяется состояние автомата после его работы на всей цепочке. Если это состояние принадлежит множеству заключительных состояний, то считается, что цепочка распознана автоматом.