Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы)

Формальные языки и грамматики: задачи распознавания и синтаксического анализа.

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

Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru

Где Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru .

Если задана последовательность цепочек Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru . Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru .

Если задана цепочка Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru с помощью правил заданной грамматики может быть свернута, то она принадлежит языку, порождаемому данной грамматикой.

Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы).

1) Символьное обозначение - в виде порождающих правил;

Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru

D – цифра, N – число.

Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru

Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru

2) Нормальная форма Бекуса (БНФ);

Вместо терминального символа используются слова или группы слов, которые называются металингвистическими переменными и заключаются в угловые скобки. Вместо Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru используется символ Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru (это есть).

Определим синтаксис числа с помощью БНФ.

Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru

Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru

3) Итерационная ( Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru );

Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru

4) Синтаксические диаграммы;

Определяемое понятие всегда пишется слева от диаграммы без рамки. Каждому нетерминальному символу соответствует прямоугольник, внутри которого записывается символ, каждому терминальному символу соответствует кружок, порядок следования определяется стрелками. Синтаксические диаграммы определяются для каждого правила.

4. Формальные языки и грамматики: классификация грамматик по типам. Существует 4 основных типов грамматик (Хомский). Тип 0; Сюда относятся грамматики, не имеющих ограничение на вид правил: Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru Тип 1 – контекстно-зависимая или грамматики с непосредственной составляющей; Для данного типа грамматики правила имеют вид: Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru , где Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru . Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru - левый контекст, а Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru - правый контекст. Например: Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru . Такой тип можно использовать на практике. Тип 2 – контекстно-свободная грамматика; Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru Грамматика Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru . Автоматной грамматикой или регулярной грамматикой; Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru Бывает правосторонняя (все правила вправо) или левосторонняя (все правила влево).   5. Автоматные грамматики: определение А-грамматик и конечного автомата. Конечный автомат задается следующей совокупностью множеств Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru - входной алфавит. Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru - алфавит состояний. Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru - начальный символ. Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru Входная лента разделена на позиции, где может быть расположен один символ, выходом автомата являются сигналы состояния. Автомат работает по тактам, в каждом такте осуществляется чтение входного символа, определение нового входного символа и сдвиг входной считывающей головки на одну позицию вправо. Чтобы описать работу автомата введем понятие конфигурация. Конфигурация состоит из состояния Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru и части цепочки Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru , которая не прочитана на входной ленте. Выделим начальную конфигурацию из цепочки полностью записанной на входной ленте. Каждый такт работы связан с определенной конфигурацией. Работу автомата можно представить как последовательную смену конфигураций. Рассмотрим один такт работы. Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru Входная цепочка Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru называется допустимой для конечного автомата, если при последовательном чтении символов этой цепочки: Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru , множество цепочек допускаемых автоматом называется языком, допускаемым этим автоматом. Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru . Пусть на входе автомата записана некоторая цепочка, конечный автомат представляется собой устройство решающее задачу распознавания, если последовательно считывая символы цепочки, автомат приходит в заключительную конфигурацию, то цепочка допустима, т.е. принадлежит автомату и наоборот. Правила построения конечного автомата по заданной грамматике: 1) Преобразование грамматики; Пусть дана правосторонняя автоматная грамматика. a. Введем вспомогательный символ Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru ; b. все заключительные правила преобразуем к виду Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru ; c. Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru . Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru 2) Построение автомата; Для каждого КА существует автоматная грамматика, порождающая язык, которая совпадает с языком допускаемым заданным автоматом.   6. Автоматные грамматики: недетерминированный конечный автомат (НКА). Если в некотором состоянии S в автомате определены несколько переходов под действием одного и того же символа Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru , то такой автомат недетерминированный. Недетерминированный конечный автомат задается следующей совокупностью множеств: Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru - входной алфавит. Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru - алфавит состояний. Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru -начальное состояние. Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru - множество заключительных состояний. Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru - функция переходов. Если для заданного входного слова, подаваемого на вход недетерминированного конечного автомата, существует последовательность состояний в которой первое состояние является начальным, а последнее заключительным (одно из заключительных), то это слово – допустимое входное слово. Множество допустимых входных слов называется языком совместимым с заданным НКА. дано НКА: Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru , построить ДКА Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru . 1) Пусть Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru ; 2) Распишем множество всевозможных состояния для какого-то состояния Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru , оно будет выглядеть как: Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru , каждому такому подмножеству множество состояний НКА поставим в соответствие одно состояние искомого Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru . 3) Определим множество заключительных состояний искомого ДКА: Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru и Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru , то Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru . 4) Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru , Формальные языки и грамматики: Формы описания синтаксиса (символьная, БНФ, итерационная, синтаксические диаграммы) - student2.ru  

Наши рекомендации