- •Формальные грамматики и языки.
- •Задача разбора
- •Классификация грамматик по Холмскому.
- •Диаграмма состояний
- •Отношения предшествования
- •Распознаватель
- •Матрица предшествования
- •Некоторые приемы приведения к грамматикам простого предшествования.
- •Представление автоматов.
- •Концевые маркеры и выходы из распознавания.
- •Эквивалентность состояний.
- •Проверка эквивалентности двух состояний.
- •Недостижимые состояния.
- •Алгоритм составления списка достижимых состояний.
- •Приведённые автоматы.
- •Получение минимального автомата.
- •Недетерминированные автоматы.
- •Эквивалентность недетерминированных и детерминированных конечных распознавателей (нкр и дкр).
- •Задание:
- •Транслятор.
- •Введение таблицы символов.
- •Включение неявной информации.
- •Обнаружение ошибок.
- •Макрообработка и операции, выполняемые во время компиляции.
- •Синтез объектной программы.
- •Оптимизация.
- •Генерация кода.
- •Редактирование связей и загрузки.
- •Задача идентификации. Реализация ка при работе трансляторов.
- •Хранение информации о лексемах.
- •Механизм запоминания.
- •Метод хеширования.
- •Нисходящий разбор с возвратами.
- •Начальная установка.
- •Новый человек.
- •Неудача
- •Класс грамматик, допускающих нисходящий распознаватель.
- •Статистические управляемые схемы перевода и атрибутные грамматики.
- •Контекстные условия
Эквивалентность состояний.
Для каждого конечного автомата бесконечное число других конечных автоматов, которые распознают тоже множество цепочек. Следует учитывать существование каждого-то другого распознавателя для того же множества, который определяется проще и при реализации требует меньших затрат памяти. Для каждого конкретного распознавателя единственный конечный автомат, распознающий тоже самое множество цепочек, пи этом число его состояний не больше числа состояний любого другого КР(конечного распознавателя) для этого множества.
При этом автоматы, которые различаются лишь именами состояний можно считать «одинаковыми». Поэтому в нашем случае – единственный с точностью до имён состояний. Этот единственный автомат будем называть минимальным автоматом. Минимальный автомат – это компактный вариант автоматов большого объёма, а не автомат, у которого случайно оказалось меньше состояний. Следовательно он главный кандидат на реализацию.
Введем понятие эквивалентности состояний. Неформально 2 состояний эквивалентны, если одинаково реагируют на все возможный продолжения входной цепочки. Это понятие применимо и к состояниям одного и того же автомата, и к состояниям разных автоматов.
Определение: Состояние S в КР М ~(эквивалентно) состоянию t КР N когда автомат М, начав работу в состоянии S, будет допускать в точности те же цепочки, что и автомат N, начавший работу в состоянии t.
|
a |
b |
|
1 2 3 x |
1 3 x 2 |
x x 1 3 |
0 1 0 1 |
|
a |
b |
|
1 2 3 4 5 |
1 3 5 2 2 |
4 5 1 3 3 |
1 0 1 1 1 |
|
a |
b |
|
1 2 3 x x |
1 3 x 2 2 |
x x 1 3 3 |
0 1 0 1 1 |
Обычно эквивалентность менее очевидна.
Вторая цель проверки состояний на эквивалентность: сделают ли 2 автомата одно и то же, т.е. совпадают ли множества допускаемых ими цепочек. Это допускается проверкой эквивалентности начальных состояний автоматов.
Определение: Автомат M и N эквиваленты , когда ~ их начальные состояния.
Определение:
Если 2 состояния не эквивалентны, то
цепочка, под действием которой одно из
них переходит в допускающее состояние,
а другое в отвергающее состояния,
называется цепочкой различающей
эти 2 состояния.
Определение: 2 состояния ~, когда не существует различающей их цепочки.
Понятие эквивалентности состояний является отношением эквивалентности в математическом смысле: это отношение рефлексивно(каждое состояние эквивалентно себе), симметрично( из того, что S~t=>t~S) и транзитивно(если S~t, а t~u,то S~u).
