Формальная грамматика

Формальные грамматики являются математическими моделями из грамматик , которые используются для создания и однозначно описать формальные языки . Они используются в теоретической информатике , особенно в теории вычислимости , и при создании компиляторов, с одной стороны, чтобы четко определить, является ли слово элементом языка, а с другой стороны, чтобы исследовать или доказать свойства этих формальных языков. Формальные грамматики классифицируются с использованием систем Semi-Thue, приведенных в иерархии Хомского .

описание

С формальной грамматикой, начиная с начального символа (также называемого начальной переменной ), производственные правила могут применяться из набора правил, которые генерируют новые символьные строки ( слова ) из начального символа , которые, в свою очередь, могут быть в дальнейшем заменены. Этот процесс также называют производным .

Словарь грамматики, состоящий из непересекающихся объединения в алфавите из терминальных символов с набором нетерминальных символов , указывает , какие символы могут быть использованы для этого. Набор терминальных символов определяет, какие символы состоят из слов, которые не могут быть получены в дальнейшем. Взятые вместе, эти слова составляют формальный язык, описываемый грамматикой. С другой стороны, начальный символ должен быть нетерминальным символом. Дополнительные нетерминальные символы позволяют применять более дифференцированные правила.

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

Например, можно использовать набор правил для каждой DERIVE или вывести строку .

Так же, как несколько правил могут быть применимы к данной строке, не всегда должно быть только одно место в строке, которому подходит правило. Формальные грамматики не диктуют никакого порядка. Все слова, состоящие только из оконечных символов, которые могут быть образованы из начального символа, учитываются в языке, описанном грамматикой.

определение

Формальная грамматика представлена ​​4- мя кортежем , в котором:

  • , конечный набор символов , который называется набором символов или словарем ,
  • , подмножество , также называемое алфавитом , элементы которого называются терминальными символами,
  • , конечный набор производственных правил , а также
  • , начальный символ .

Здесь корпус Kleenesche обозначает набор символов (или слов).

Набор представляет собой набор нетерминальных символов (также называемых нетерминальными или метасимволами ), в частности, ему принадлежит начальный символ. Слово в левой части пар правил не должно состоять исключительно из терминальных символов, что также может быть выражено конкатенацией :

.

Это не имеет особого смысла, если у слова справа есть начальный символ. Некоторые авторы принимают это во внимание, соответствующим образом ограничивая связанный набор, т.е. ЧАС. путем замены.

Некоторые авторы также называют четверку грамматикой . Также существуют следующие разные обозначения:

  • для конечных символов здесь ,
  • для всего словаря ( набора символов ) всех символов , здесь ,
  • для нетерминальных символов ( переменных ) здесь ,
  • для пустого слова здесь .

Язык, описываемый грамматикой

Правило данной грамматики гласит, что в слове с инфиксом R R можно заменить на Q, так что создается новое слово с инфиксом. Также говорится о том, что in переходит в грамматику или через правило , или что оно было получено из. Это можно отметить через (часто вместо ). Если нужно только выразить, что слово from может возникать в грамматике, не называя правила, вместо этого пишут ( если грамматика очевидна из контекста, тоже простая ). Соответственно, такой переход от в виде переходного отношения является естественным продолжением всех возможных контекстов, а именно:

,

где здесь обозначает в конкатенации слов.

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

Теперь формальный язык, порожденный грамматикой, - это язык, который состоит из всех слов, которые, с одной стороны, состоят только из терминальных символов, а с другой стороны, могут быть получены из начального символа с конечным числом шагов:

Не имеет значения, в каком порядке производственные правила применяются к производным словам и есть ли несколько вариантов получения слова из . Два грамматик и являются эквивалентными , если и только если языки генерируются путем и равны:

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

Примеры

быть грамматикой с терминальными символами , нетерминальными символами , начальным символом и с правилами

Вот пустое слово , которое слово длины 0. Эта грамматика определяет язык всех слов в форме с . Таким образом, из - за следующие выводы, слов , и элементы языка , описанных с помощью :

  • , используя правило (2),
  • , посредством правил (1), (4) и (6),
  • , с помощью правил (1), (1), (4), (3), (5), (6) и (7).

Но есть и другие способы получить это слово от .

Еще одна грамматика, описывающая тот же язык, - это контекстно-свободная грамматика со следующими правилами:

Каждый рекурсивно перечислимый язык порождается несколькими ( счетными, бесконечно многими ) грамматиками. Однако есть также языки, которые не могут быть сгенерированы какой-либо грамматикой.

Классы грамматик

Грамматики относятся к классам, которые характеризуются сходством. Самая известная классификация была описана Ноамом Хомским и Марселем Шютценбергером с использованием иерархии Хомского .

Иерархия Хомского

Иерархия Хомского делит на классы грамматик от типа 0 до 3 -го типа в зависимости от типа правил производства:

  • Грамматики типа 0: грамматики со структурой фраз - это неограниченные формальные грамматики.
  • Грамматики типа 1: контекстно-зависимые грамматики могут состоять только из правил, в которых ровно один нетерминальный символ заменяется строкой символов. Этот символ также может быть окружен другими символами в левой части правила, которые указывают контекст, в котором должна происходить замена.
  • Грамматики типа 2: в контекстно-свободных грамматиках , с другой стороны, в левой части правил может быть только один нетерминальный символ. Затем символ можно заменить независимо от контекста.
  • Грамматики типа 3: в случае обычных грамматик левые части правил также содержат ровно один нетерминальный символ. В лево-регулярных грамматиках правая часть правила может состоять не более чем из одного нетерминального символа, за которым следует не более одного конечного символа (например, ). С другой стороны, в довольно регулярных грамматиках правая часть максимума терминального символа может существовать, самая большая часть следует за нетерминальным (Пример:) .

Связанные языковые классы уменьшаются в размерах. Существуют следующие отношения реального включения :

Для классов языка по типу с следующим: .

Другие языковые курсы

Помимо иерархии Хомского, были установлены другие классы грамматик:

Смотри тоже

литература

  • Катрин Эрк, Лутц Приезе: теоретическая информатика. Всестороннее введение . 2-е расширенное издание. Springer-Verlag, Berlin et al.2002, ISBN 3-540-42624-8 , стр. 53-61 .

веб ссылки

Индивидуальные доказательства

  1. Питер Бахманн: Основы теоретической информатики . Котбус 2001, стр. 47 ( PDF [доступ 12 февраля 2011 г.] конспект лекций).
  2. Хотя значение и / в данном случае ясно, необходимо уточнить, что имеется в виду (а также часто используемое ), проверяя контекст; где одночетверная грамматика, чтобы не уйти.
  3. б Klaus Reinhardt: Приоритет платежных машин и синхронизация языков полугусеничных ( сувенир в оригинале от 17 января 2018 года в Internet Archive ) Info: архив ссылка автоматически вставляется и не проверяются. Проверьте исходную и архивную ссылку в соответствии с инструкциями, а затем удалите это уведомление. , Факультет компьютерных наук Штутгартского университета; Докторская диссертация 1994 г. Здесь дословно указана грамматическая четверка , что означает в выбранном здесь обозначении . @ 1@ 2Шаблон: Webachiv / IABot / users.informatik.uni-halle.de