- •Глава 3. Теория автоматов.
- •Основные понятия теории автоматов
- •Так к.С. Грамматика порождает язык
- •Так, нефункциональная к. С. Грамматика
- •Пояснения к построению дерева методом “свертый”:
- •Предполагается, что “программа” машины Тьюринга составляется из конечного множества команд вида: qiaj→ ql ak dp, , где (и).
- •Замечание
- •I. Макроподход.
- •II. Микроподход
- •Пояснения
- •Замечание
- •Замечание
- •Моделирование автоматных систем сетями петри.
- •Сеть петри Общие положения.
- •Выполнение сети Петри.
- •Интерпретация сети Петри.
Так к.С. Грамматика порождает язык
![]()
, цепочки, которого с n>1 имеют несколько выводов и соответственно несколько деревьев синтаксического вывода. Действительно, предложение a7 представимо двумя деревьями вывода

3) Поскольку дерево синтаксического вывода является средством вывода терминального слова, что наличие нескольких деревьев для вывода влечет за собой семантическую неоднозначность (т. е. различные интерпретации одного и того же слова).
Так, нефункциональная к. С. Грамматика
позволяет для выравнивания a∙b+c задать два дерева синтаксического вывода

Интерпретацией этих двух деревьев для цепочки a∙b+c являются различные расстановки скобок – в первом случае (a∙b)+c, а во втором a∙(b+c), что означает включение в терминальный алфавит Т грамматики σ скобок (левой и правой).
Теорема: не существует алгоритма распознавания для произвольной К. С. грамматики, ее функциональности или не функциональности.
4
)
Процесс распознавания правильности
цепочки (слова, предложения), т. е.
определения ее принадлежности к
рассматриваемому языку ,
называют синтаксическим анализом (в ЭВМ этот анализ осуществляет распознаватель – один из основных блоков современных трансляторов t(αех) = αобъект, где t – транслирующая программа). При анализе цепочек используется либо стратегия “развертый” (т. е. сверху вниз – от корня дерева вывода к его кроне), либо стратегия “свертый” (т. е. снизу вверх – от кроны к корню дерева вывода).
Е
х.:провести
синтаксический анализ предложения
методом “развертый” и “свертый”, если продукции σ2 имеет вид: Р={J→Ca, C→bA, C→aB, A→a, B→b, B→bC}.
Решение:
а)

б)
1
)
2)
3)
4) 5) 6)

Пояснения к построению дерева методом “свертый”:
входная цепочка (предложение) является кроной (полагаем);
получаемые в процессе свертки подстроки сравниваются с правыми частями продукций грамматики σ2, а при их совпадении приводятся к нетерминальному символу, стоящему в левой части таких продукций.
Отметим, что грамматика Хомского представляет практический интерес потому, что они порождают распознаваемые языки. В противном случае, нельзя бы было обнаружить ошибки при отладке программ.
РЕГУЛЯРНАЯ ГРАММАТИКА И КОНЕЧНЫЙ АВТОМАТ.
Любая
регулярная грамматика
может быть представлена взвешенным
графом . В графе
;
где K-
множество концевых вершин (узлов), V
– множество узлов,
- множество дуг орграфа
.
При этом
если А-грамматика имеет продукции вида B→аC, то узел орграфа, помеченный нетерминальным символом с помощью дуги, помеченной терминальным символом
,
соединяется с вершиной
.Если грамматика σ3 имеет продукции вида B→а, то узел
соединен
дугой, помеченной символом
,
с концевой вершиной
.При наличии в А-грамматике правил вида В→Λ (где Λ – пустая цепочка,
,
),
каждый нетерминальный символ, для
которого имеет место такое правило,
считается концевой вершиной.
Ех.:
пусть
.
Граф этой грамматики имеет вид

позволяющий записать порождаемый σ3 язык α(σ3), а предложениями α(σ3) будут цепочки aa и bb. Действительно, деревья вывода следующие:

Эти предложения легко получаются из графа как последовательности весов дуг на пути от вершины J к вершине К (каждый такой путь соответствует одному из реальных деревьев вывода).
Примечание.
Говорят, что конечный взвешенный орграф
,
имеющий один начальный узел и один или
несколько конечных узлов, есть конечный
автомат
,
распознающий язык
(здесь
-
концевые вершины,q1
– начальное состояние).
Ех. Пусть имеем диаграмму автоматной грамматики вида:

Очевидно,
что имеем продукции Р={J→aJ,
J→aB,
B→bB,
B→b},
порождающие язык
.
Замечание. Графовое представление А-грамматики можно рассматривать не только как удобный аппарат порождения предложений соответствующего автоматного языка α(σ3), но и как анализатор, распознающий слова, принадлежащие этому языку, и вырабатывающий их синтаксическую структуру.
Теорема.
Для каждой автоматной грамматики σ3
можно построить эквивалентный ей
конечный распознающий автомат (анализатор)
.
МАШИНЫ ТЬЮРИНГА КАК РАСПОЗНАВАТЕЛИ.
Машина Тьюринга – гипотетическая вычислительная машина, предложенная Аланом Тьюрингом в 1936 г. для уточнения эффективной процедуры (алгоритма) вычислений.
Первоначально
машина Тьюринга – это автомат,
обрабатывающий (пропуская команды в
обоих направлениях) потенциально
бесконечную ленту, разделенную на
ячейки, в которых записаны по одному
символы из конечного алфавита А (для
дальнейшего примем, что пустой символ
а0
входит в этот алфавит, т. е.
)

предполагается, что блок управления, являющийся конечным автоматом, имеет конечное число состояний Q={q0, q1,…, qn}, где q0 – начальное (исходное) состояние блока.
