Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
124__Release.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
1.49 Mб
Скачать

5. Конечно-автоматные диаграммы.

Существуют разные варианты этого понятия. Один из них определяется следующим образом. Задается конечный помеченный мультиграф, один узел которого помечен как начальный и один или несколько узлов помечены как конечные, или заключительные. Имеется входной алфавит ∑ = {a1,...,ak}, и каждая дуга помечена символом этого алфавита. Надстройка заключается в том, что с диаграммой D связывается определяемый ею язык L(D), состоящий из слов, соответствующих путям из начального узла в конечные. Словом, соответствующим пути rl, r2,..., rl, называется такое слово xl, х2 ... х1, в котором xi — символ, помечающий дугу ri (i = 1,…,1)

Мы дали статическое описание языка L(D), но его можно описать более динамически или операционно. При этом множество узлов диаграммы трактуется как множество состояний Q = {ql,..., qn}, а перемещение из узла qi в узел qj по дуге, помеченной а, как переход из состояния qi в состояние qj под действием входного символа а. Тогда путь в диаграмме можно рассматривать как вычисление для входного слова, соответствующего этому пути. Если для любого aє∑ из каждого узла выходит не более одной дуги, помеченной сим­волом aє∑, то диаграмма задает детерминированный конечный автомат, который начинает работу в начальном состоянии и, читая в текущем состоянии q текущий входной символ а, переходит в то состояние q', куда ведет дуга, помеченная а. Если, прочитав входное слово φ, автомат попадает в заключительное состояние, то φєL(D) (говорят, что автомат допускает или распознает такое φ). Недетерминированная диаграмма задает для слова φ некоторое множество вычислений пли путей переходов, и если в нем есть вычисление, заканчивающееся в заключительном состоянии, то φєL(D).

Конечно-автоматная диаграмма может иметь выходной алфавит, а дуги, кроме входных символов, могут быть помечены выходными символами. Тогда каждому пути г,, г, соответствует пара слов (х, ... х,, у, ... у,), где yt — выходной символ, помечающий дугу rt, и диаграмма определяет таким образом отношение между входными и выходными словами (функцию — в детерминированном случае).

Следовательно, надстройкой будет не язык, а отношение или функция. Разные варианты понятия конечно-автоматной диаграммы находят применение в самых разнообразных областях и задачах - от лексического анализа до протоколов связи.

6 Синтаксические диаграммы.

Для описания синтаксиса языков программирования используются в основном два средства: БНФ (Бэкуса - Наура формы) и синтаксические диаграммы. Исторически первыми были БНФ. При разработке языка Алгол-60 рабочей группой Международной федерации по обработке информации (IFIP -International Federation on Information Processing) была придумана нотация в виде металингвистических формул для описания правил грамматики языка. Такие формулы позволяют во многих случаях компактно описывать языки. Например, условный оператор можно описать в виде:

(условный оператор)::= IF< условие) THEN < оператор) | ELSE ( оператор)

В БНФ знак «::=» читается « это есть» и разделяет левую и правую часть правил. Знак «I» (вертикальная черта) читается «или» и разделяет возможные альтернативы в правой части правила. Угловые скобки выделяют текст -название понятия языка (нетерминального символа). Это минимальные средства БНФ. Эти символы используются в правых частях правил и позволяют несколько упростить набор правил или избежать рекурсии.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]