logo
ОТВЕТЫ НА ГОСы (все ответы)

1. Автоматы и формальные языки. Классификация формальных языков и автоматов. Концепция порождения и распознавания. (та)

Автоматом называется формальная система имеющая входной и выходной каналы данных и находящийся в каждый дискретный момент времени в одном из конечного числа состояний.

Концепция порождения и распознавания.

Автомат-акцептор – это абстракция автомата, при которой он рас­сматривает как устройство, которое может отличать ко­нечные последовательности входных данных с помощью своих состояний (концепция распознавания).

Порождающий автомат - это абстракция автомата, при которой он рас­сматривается как устройство, порождающее последовательность сообщений на выходе при переходе из одного состояния в другое.

Автомат-преобразователь - это абстрактный автомат, при кото­ром он рассматривается как устройство преобразующее последова­тельность входных сообщений в последовательность выходных сообщений, при этом автомат изменяет свое состояние. Пример: компилятор.

Формальный язык – под формальным языком L(A) понимается произвольное подмножество множества универсум от этого алфавита. L(A)  A*.

Знак – элемент конечного множества различимых элементов.

Алфавит – упорядоченное множество знаков (конечное). Порядок важен. С помощью порядка задается лексикографический порядок.

Символ – знак вместе с сопоставленным ему смыслом.

Строка (цепочка) – последовательность знаков некоторого алфавита, которая рассматривается как нечто целое (характеризуется длиной).

Множество универсум A* - множество всех конечных строк в алфавите A.

Формальной грамматикой G называется алгебраическая система G = < V, W, P, I > , где

V - алфавит терминальных знаков (основных),

W - алфавит не­терминальных знаков (вспомогательных), (изначально предполагается, что VW=);

P - множество продук­ций (где правило вывода имеет вид P = {, ,  (V  W)*},

I - аксиома грамматики (начальный знак), I  W

Формальным языком L, порожденным формальной грамматикой G , L=L(G), называется всевозможные строки в терминальном алфавите, которые могут быть выведены из аксиомы грамматики: L(G)={  V* | IG  }

Классификация грамматик и автоматов:

1) Грамматика типа 0 (произвольная), имеет особенность, что на всю продукцию этой грамматики не накладыва­ется никаких ограничений:  ,   (VW)+ ,   (VW)* . Тезис Поста утверждает, что каждая грамматик типа 0 может быть реализована в виде МТ.

2.1) Грамматика типа 1 (контекстная). Для контекстных грамматик произвольная продукция имеет следующий вид:  А     ; , ,  (VW)* ; A  W*.

2.2) Грамматика типа 1` (полуконтекстная). Это грамматика вида:

а)  А    ; ,   (VW)* ; A  W*. – правосторонняя контекстная грамматика;

б) А     ; ,   (VW)* ; A  W*.– левосторонняя контекстная грамматика;

 - левый,  - правый контекст.

3) Грамматика типа 2 (контекстно-свободная), продукции которой имеют вид :

А  , AW ,   (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.