Язык Дайка - Dyck language

Решетка из 14 слов Дика длины 8 - [ и ] интерпретируется как вверх и вниз

В теории формальные языки из Информатика, математика, и лингвистика, а Дайк слово сбалансированный нить квадратных скобок [и]. Набор слов Дика образует Язык Дайка.

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

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

Позволять - алфавит, состоящий из символов [и]. Позволять обозначить его Клини закрытие. Язык Дайка определяется как:

Бесконтекстная грамматика

Может быть полезно определить язык Дейка через контекстно-свободная грамматика в некоторых ситуациях язык Дика генерируется контекстно-свободной грамматикой с одним нетерминальным S, и производство:

Sε | "[" S "]" S

То есть, S либо пустой строкой (ε) или является «[», элементом языка Дейка, соответствием «]» и элементом языка Дейка.

Альтернативная контекстно-свободная грамматика для языка Дайка дается производством:

S → ("[" S "]")*

То есть, S является ноль или более случаев комбинации «[», элемента языка Дейка и соответствующего «]», где несколько элементов языка Дайка в правой части продукции могут отличаться друг от друга.

Альтернативное определение

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

является с ""вставлен в -я позиция
является с ""удалено из -я позиция

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

Отношение эквивалентности разделяет язык в классы эквивалентности. Если мы возьмем для обозначения пустой строки, то язык, соответствующий классу эквивалентности называется Язык Дайка.

Характеристики

  • Язык Дейка закрыт под действием конкатенация.
  • Лечением как алгебраический моноид при конкатенации мы видим, что структура моноида переходит на частное , в результате чего синтаксический моноид языка Дайка. Класс будет обозначаться .
  • Синтаксический моноид языка Дейка не является коммутативный: если и тогда .
  • С указанными выше обозначениями но ни то, ни другое ни обратимы в .
  • Синтаксический моноид языка Дейка изоморфен бициклическая полугруппа в силу свойств и описано выше.
  • Посредством Теорема Хомского – Шютценбергера о представлении, любой контекстно-свободный язык является гомоморфным образом пересечения некоторых обычный язык с языком Дейка на одном или нескольких типах пар скобок.[1]
  • Язык Дейка с двумя различными типами скобок можно распознать в класс сложности .[2]
  • Количество различных слов Дика с ровно п пары скобок и k самые внутренние пары (то есть подстрока ) это Число Нараяны .
  • Количество различных слов Дика с ровно п пары скобок - это пКаталонский номер . Обратите внимание, что язык слов Дейка с п пары скобок равны объединению по всем возможным k, языков слов Дика п пары скобок с k самые сокровенные пары, как определено в предыдущем пункте. С k может варьироваться от 0 до п, получаем следующее равенство, которое действительно имеет место:

Примеры

Мы можем определить отношение эквивалентности на языке Дайка . За у нас есть если и только если , т.е. и иметь одинаковую длину. Это отношение разделяет язык Дейка. куда . Обратите внимание, что пусто для нечетных .

Введя слова Дика длины , мы можем ввести отношения на них. Для каждого мы определяем отношение на ; за у нас есть если и только если можно добраться из серией правильные свопы. Правильный обмен одним словом заменяет вхождение '] [' на '[]'. Для каждого Соотношение делает в частично заказанный набор. Соотношение является рефлексивный потому что пустая последовательность правильных свопов занимает к . Транзитивность следует, потому что мы можем расширить последовательность правильных свопов, которая требует к объединив его с последовательностью правильных свопов, которая требует к формирование последовательности, которая занимает в . Чтобы увидеть это это также антисимметричный введем вспомогательную функцию определяется как сумма по всем префиксам из :

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

Строгая монотонность
частичные суммы
][
[]
частичные суммы
Разница частичных сумм0200

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

Частично упорядоченный набор показано на иллюстрации, сопровождающей введение, если мы интерпретируем [как подъем и] как опускание.

Обобщения

Существуют варианты языка Дейка с несколькими разделителями, например, в алфавите "(", ")", "[" и "]". Слова такого языка - это те слова, которые хорошо заключены в круглые скобки для всех разделителей, то есть можно читать слово слева направо, вставлять каждый открывающий разделитель в стек, и всякий раз, когда мы достигаем закрывающего разделителя, мы должны иметь возможность чтобы извлечь соответствующий открывающий ограничитель из верхней части стека.

Смотрите также

Примечания

  1. ^ Камбитес, Сообщения в алгебре Том 37 Выпуск 1 (2009) 193-208
  2. ^ Баррингтон и Корбетт, Письма об обработке информации 32 (1989) 251-256

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