Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпаргалка по теории автоматов (ТА).doc
Скачиваний:
204
Добавлен:
11.04.2014
Размер:
864.77 Кб
Скачать

Вопрос 33. Классификация языков

Американский лингвист Н. Хомский в 1959 г. предложил следующую классификацию языков по типам порождающих их грамматик (классификация Хомского) :

Класс 0    без каких-либо ограничений на строку в левой или правой части.

Модели естественных языков.

Класс 1 Левая часть:   ;  = 12; 1, 2  V*,   N

Правая часть:  = 12;   Vx, Vx = V* \  Это граматика с непосредственными составляющими. (НС-граматика). Языки контекстно-зависимые.

Класс 2 A  ; A  N;   Vx Это контекстно свободные граматики – играют свободную роль при построении синтаксических анализаторов компиляторов языков высокого уровня. (КС-граматики).

Класс 3 – класс автоматных (регулярных) грамматик (используются при создании лексических анализаторов, при анализе тектсов и в других приложениях). А→bB, А→B A, B ε N, b ε T.

Если для класса 1 допустить что цепочка β м.б. пустой, то грамматика каждого последующего класса является строгим подмножеством предыдущего класса. Язык называется распознаваемым, если существует алгоритм, который за конечное число шагов отвечает на вопрос: принадлежит ли произвольная цепочка над словарем грамматики языку, пождаемому ей. Если число шагов алгоритма распознавания зависит от длинны цепочки и может быть оценена заранее – язык относится к легко распознаваем. Каждому классу языков соответствует свой тип абстрактных распознающих автоматов для их распознавания (см. таблицу 1).

Языки

Распознающие устройства

Тип0: Рекурсивно перечислимые множества

Машины Тьюринга

Тип1: КЗ – языки

Линейно ограниченные автоматы

Тип2: КС – языки

Автоматы с магазинной памятью (МП-автоматы)

Тип3: Регулярные языки

Конечные автоматы

Регулярные языки и Конечные Автоматы

[см. №32] Конечное множество символов – словарь Последовательности символов – цепочки или предложения. Если V – словарь, то V* - множество всевозможных цепочек замыканий. Язык – некоторое подмножество замыканий . Язык содержит только допустимые цепочки. ...цепочек бесконечное множество. Задают язык с помощью грамматик, а принадлежность цепочек к языку устанавливают с помощью автомата. Строят допустимые цепочки с помощью порождающих грамматик, а определяют допустимость с помощью распознающих грамматик. Грамматика неформально – конечный механизм задания языка. Роль распознающей грамматики выполняет автомат – распознаватель. Регулярный (автоматный) язык – язык, порождаемый регулярной грамматикой.

Регулярная грамматика – порождающая грамматика, правило которой имеет вид А->aB, A->bC. Где A,B,C – нетерминальные символы, a,b – множество терминальных символов.

Регулярный язык распознаётся с помощью конечного автомата – распознавателя Ар={S,X,s0,δ,F}

Конечный автомат допускает входную цепочкуесли эта цепочка переводит из начального в одну из заключительных состояний.

Множество всех цепочек, допускаемых А, образует язык, допускаемый А.

Пример. V1={a,b,c} V2={abc,cc} Обычно переходы в тупиковые состояния вроде S6, не показывают на графах автоматов, и тогда получают не полностью определённые автоматы. Если переход по сигналу а не определен для состояния S, то это означает, что существует незаключительное состояние, в которое попадает по а из S и затем остаётся в этом состоянии по любому поступающему символу, т.е. это состояние является тупиком. Пример 2. V1={a,b,c} L2={anbcn} ЯзыкL2 состоит из цепочек b, abc, aabcc, aaabccc и т.д. Можно доказать, что язык L2 – не является регулярным автоматом. В общем случае для проверки автоматности языка используют лемму о накачке.