Конъюнктивная грамматика - Conjunctive grammar

Конъюнктивные грамматики класс формальной грамматики, изучаемый в формальный язык Они расширяют базовый тип грамматики, контекстно-свободные грамматики, с соединение Помимо явного соединения, конъюнктивные грамматики допускают неявное дизъюнкция представлен несколькими правилами для одного нетерминального символа, который является единственной логической связкой, выражаемой в контекстно-свободных грамматиках. Соединение может использоваться, в частности, для определения пересечения языков. Дальнейшее расширение конъюнктивных грамматик, известное как Булевы грамматики дополнительно допускает явное отрицание.

Правила конъюнктивной грамматики имеют вид

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

Формальное определение

Конъюнктивная грамматика определяется 4-кортеж куда

  1. V - конечное множество; каждый элемент называется нетерминальный символ или Переменная. Каждая переменная представляет отдельный тип фразы или предложения в предложении. Переменные также иногда называют синтаксическими категориями.
  2. Σ конечный набор Терминалs, не пересекается с V, которые составляют фактическое содержание предложения. Набор терминалов - это алфавит языка, определенный грамматикой грамм.
  3. р - конечное множество продукций, каждая из которых имеет вид для некоторых в и . Члены р называются правилоs или производствоs грамматики.
  4. S - это начальная переменная (или начальный символ), используемая для представления всего предложения (или программы). Это должен быть элемент V.

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

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

Определение по происхождению

Для любых струн , мы говорим ты непосредственно дает v, записанный как , если

  • либо есть правило такой, что и ,
  • или существует строка такой, что и .

Для любой строки мы говорим грамм генерирует ш, записанный как , если такой, что .

Язык грамматики - это набор всех генерируемых им строк.

Пример

Грамматика , с постановками

,
,
,
,
,

конъюнктивно. Типичный вывод:

Можно показать, что . Язык не является контекстно-зависимым, что доказано лемма о прокачке для контекстно-свободных языков.

Алгоритмы парсинга

Хотя выразительная сила конъюнктивных грамматик больше, чем у контекстно-свободных грамматик, конъюнктивные грамматики сохраняют некоторые из последних. Что наиболее важно, существуют обобщения основных алгоритмов контекстно-свободного синтаксического анализа, включая линейно-временные. рекурсивный спуск, кубическое время обобщенный LR кубическое время Петух-Касами-младший,а также Доблестный алгоритм работает так же быстро, как умножение матриц.

Теоретические свойства

Свойство, которое неразрешимо уже для контекстно-свободных языков или их конечных пересечений, должно быть неразрешимым и для конъюнктивных грамматик; к ним относятся: пустота, конечность, регулярность, контекстная свобода,[n 1] включение и эквивалентность.[n 2]

Семейство конъюнктивных языков замкнуто относительно объединения, пересечения, конкатенация и Клини звезда, но не под гомоморфизм струн, префикс, суффикс и подстрока. Замыкание при дополнении и при гомоморфизме строк без ε все еще остаются открытыми проблемами (по состоянию на 2001 г.).[1]:533

Исследована выразительная сила грамматики над однобуквенным алфавитом.[нужна цитата ]

Эта работа послужила основой для изучения языковые уравнения более общего вида.

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

Айзиковиц и Камински[2] представил новый класс выталкивающие автоматы (КПК) называется синхронизированные автоматы с попеременным опусканием (САПДА). Они доказали, что он эквивалентен конъюнктивным грамматикам точно так же, как недетерминированные КПК эквивалентны контекстно-свободным грамматикам.

Примечания

  1. ^ Учитывая конъюнктивную грамматику, является ли созданный ею язык пустым / конечным / регулярным / контекстно-свободным?
  2. ^ Учитывая две конъюнктивные грамматики, является ли сгенерированный первый язык подмножеством / равным второму?

Рекомендации

  1. ^ Александр Охотин (2001). "Конъюнктивные грамматики" (PDF). Журнал автоматов, языков и комбинаторики. 6 (4): 519–535.
  2. ^ Айзиковиц, Тамар; Камински, Майкл (2011). "LR (0) Конъюнктивные грамматики и детерминированные синхронизированные чередующиеся автоматы выталкивания вниз". Компьютерные науки - теория и приложения. Конспект лекций по информатике. 6651. С. 345–358. Дои:10.1007/978-3-642-20712-9_27. ISBN  978-3-642-20711-2. ISSN  0302-9743.

внешняя ссылка