Концепция порождения и распознавания
Автомат-акцептор – это абстракция автомата, при которой он рассматривает как устройство, которое может отличать конечные последовательности входных данных с помощью своих состояний (концепция распознавания). Порождающий автомат - это абстракция автомата, при которой он рассматривается как устройство, порождающее последовательность сообщений на выходе при переходе из одного состояния в другое. Автомат-преобразователь - это абстрактный автомат, при котором он рассматривается как устройство преобразующее последовательность входных сообщений в последовательность выходных сообщений, при этом автомат изменяет свое состояние. Пример: компилятор. Формальный язык – под формальным языком L(A) понимается произвольное подмножество множества универсум от этого алфавита. L(A) Í A*. Знак – элемент конечного множества различимых элементов. Алфавит – упорядоченное множество знаков (конечное). Порядок важен. С помощью порядка задается лексикографический порядок. Символ – знак вместе с сопоставленным ему смыслом. Строка (цепочка) – последовательность знаков некоторого алфавита, которая рассматривается как нечто целое (характеризуется длиной). Множество универсум A* - множество всех конечных строк в алфавите A. Формальной грамматикой G называется алгебраическая система G = < V, W, P, I >, где V - алфавит терминальных знаков (основных), W - алфавит нетерминальных знаков (вспомогательных), (изначально предполагается, что VÇW=Æ); P - множество продукций (где правило вывода имеет вид P = {a®b, a, bÎ (V È W)*}, I - аксиома грамматики (начальный знак), I Î W Формальным языком L, порожденным формальной грамматикой G, L=L(G), называется всевозможные строки в терминальном алфавите, которые могут быть выведены из аксиомы грамматики: L(G)={t Î V* | IG Þ t} Классификация грамматик и автоматов: 1) Грамматика типа 0 (произвольная), имеет особенность, что на всю продукцию этой грамматики не накладывается никаких ограничений: a®b, a Î (VÈW)+, b Î (VÈW)*. Тезис Поста утверждает, что каждая грамматик типа 0 может быть реализована в виде МТ. 2.1) Грамматика типа 1 (контекстная). Для контекстных грамматик произвольная продукция имеет следующий вид: a А b ® a w b; a, b, wÎ (VÈW)*; A Î W*. 2.2) Грамматика типа 1` (полуконтекстная). Это грамматика вида: а) a А ® a w; a, b Î (VÈW)*; A Î W*. – правосторонняя контекстная грамматика; б) А b ® w b; b, w Î (VÈW)*; A Î W*.– левосторонняя контекстная грамматика; a - левый, b - правый контекст. 3) Грамматика типа 2 (контекстно-свободная), продукции которой имеют вид: А® a, AÎW, a Î (VÈW)* Контекстно-свободная — магазинный автомат, представляющий собой некоторое устройство управление, имеется полу - лента справа и слева и стек. Используется: 1) для распознавания строк принадлежащих некоторой грамматике. 2) Порождение строк принадлежащих некоторому языку (генерация кода). 3) Объединения задача распознавания и порождения для организации процесса компиляции. М=<V,Q,A,P,B,I>, где V- входной алфавит, Q - множество состояний, A - внутренний алфавит стека, P - отображения Q´V (Q´V´A ® Q´A´B), B - выходной алфавит, I- начальная конфигурация 4) Грамматика типа 3 (регулярная): это грамматика, продукции которой имеют вид: а) А® а | aB – правосторонняя; б) А® а | Bа – левосторонняя; где a Î V; A,B Î W Пример регулярной грамматики: двоичные целые числа I®0 | 1 | I1 | I0 | A; A®+ | - | e Регулярная грамматика соответствует конечному автомату. A Î W, a Î V; A®a; A®aB - левосторонний вывод, A®Ba - правосторонний вывод. Формальные языки классифицируются по типу грамматики, которая их порождает, то есть язык, порожденный грамматикой типа 0, называется языком типа 0. Язык, порожденный грамматикой типа 1, называется языком типа 1. Язык, порожденный грамматикой типа 2, называется языком типа 2. Язык, порожденный грамматикой типа 3, называется языком типа 3.
|