
- •Вопрос 1. Предмет та.
- •Вопрос 2. Классификация автоматов
- •Вопрос 3. Приложения та
- •Вопрос 4. Двоичное умножение
- •Вопрос 5. Умножение в инверсных кодах
- •Вопрос 6. Деление
- •Вопрос 7. Деление в инверсных кодах. Особенности.
- •Вопрос 8. Особенности выполнения операций в формате с плавающей запятой.
- •Вопрос 9
- •Вопрос 10. Модель дискретного преобразователя Глушкова
- •Вопрос 11. Микропрограммирование
- •Вопрос 12. Структуры операционных автоматов
- •Вопрос 13. Синтез оа процедурного типа
- •Вопрос 14. Синтез оа структурного типа
- •Вопрос 15. Автоматные языки. Формальное задание Автомата.
- •Вопрос 16. Модели автоматов Мили и Мура
- •Вопрос 17. Эквивалентность ка. Теорема Мура.
- •Вопрос 18. Минимизация конечных автоматов.
- •Вопрос 19. Эквивалентность автомата Мили и Мура.
- •Вопрос 20. Виды уа
- •Вопрос 21. Структурные схемы уа. Мили и Мура.
- •Вопрос 22. Этапы синтеза уажл.
- •Вопрос 23. Примеры синтеза уажл.
- •Вопрос 24. Гонки и способы борьбы с ними
- •Вопрос 25. Уа с программируемой логикой (уапл)
- •Вопрос 26. Алгебраическая и структурная теория ка.
- •Вопрос 26 [part2]
- •Вопрос 27. Объединение нескольких уа в один
- •Вопрос 28. Программная реализация ка. Варианты реализации. Шаблон Состояние.
- •Вопрос 29. Назначение и краткая характеристика vhdl.
- •Вопрос 30. Реализация уа на vhdl.
- •Вопрос 31. Понятие о языке моделирования uml.
- •Вопрос 32. Понятие о языках и формальных грамматиках
- •Вопрос 33. Классификация языков
- •Регулярные языки и Конечные Автоматы
- •Вопрос 34. Лемма о накачке
- •Вопрос 35. Понятие о нка. Получение дка по нка.
- •Вопрос 36. Регулярные выражения. Синтаксические диаграммы. Теорема Клини.
- •Вопрос 37. Применение рв. Различные нотации рв.
- •Вопрос 38. Кс-грамматики и магазинные автоматы.
- •Вопрос 39. Машины Тьюринга
- •Вопрос 40. Использование мт для анализа алгоритмов.
Вопрос 33. Классификация языков
Американский лингвист Н. Хомский в 1959 г. предложил следующую классификацию языков по типам порождающих их грамматик (классификация Хомского) :
Класс 0 без каких-либо ограничений на строку в левой или правой части.
Модели естественных языков.
Класс 1 Левая часть: ; = 12; 1, 2 V*, N
Правая часть: = 12; 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
– не является регулярным автоматом. В
общем случае для проверки автоматности
языка используют лемму о накачке.