Неограниченная грамматика - Unrestricted grammar
В теория автоматов, класс неограниченная грамматика (также называемый полу-чт, тип 0 или же грамматики фразовой структуры) - самый общий класс грамматик в Иерархия Хомского. Нет никаких ограничений на создание неограниченной грамматики, кроме того, что каждая из их левых частей не пуста.[1]:220 Этот класс грамматики может генерировать произвольные рекурсивно перечислимые языки.
Формальное определение
An неограниченная грамматика это формальная грамматика , куда - конечный набор нетерминальных символов, конечный набор терминальные символы, и не пересекаются,[примечание 1] конечный набор правила производства формы куда и строки символов в и не пустая строка, и - это специально обозначенный стартовый символ.[1]:220 Как следует из названия, нет никаких реальных ограничений на типы производственных правил, которые могут иметь неограниченные грамматики.[заметка 2]
Эквивалентность машинам Тьюринга
Неограниченные грамматики характеризуют рекурсивно перечислимые языки. Это то же самое, что сказать, что для любой неограниченной грамматики есть некоторые Машина Тьюринга способен распознать наоборот. Учитывая неограниченную грамматику, такую машину Тьюринга достаточно просто построить, как двухленточную недетерминированная машина Тьюринга.[1]:221 Первая лента содержит входное слово для тестирования, а вторая лента используется машиной для создания сентенциальные формы из . Затем машина Тьюринга делает следующее:
- Начните слева от второй ленты и несколько раз выберите перемещение вправо или текущую позицию на ленте.
- Недетерминированно выбрать производство из постановок в .
- Если появляется в каком-то месте на второй ленте, замените к в этот момент возможно смещение символов на ленте влево или вправо в зависимости от относительной длины и (например, если длиннее, чем , сдвиньте символы ленты влево).
- Сравните полученную форму предложения на ленте 2 со словом на ленте 1. Если они совпадают, машина Тьюринга принимает слово. Если они этого не сделают, машина Тьюринга вернется к шагу 1.
Легко видеть, что эта машина Тьюринга будет генерировать все и только сентенциальные формы на своей второй ленте после последнего шага выполняется произвольное количество раз, поэтому язык должно быть рекурсивно перечислимым.
Возможна и обратная конструкция. Имея некоторую машину Тьюринга, можно создать эквивалентную неограниченную грамматику.[1]:222 который даже использует только продукты с одним или несколькими нетерминальными символами в их левой части. Следовательно, произвольную неограниченную грамматику всегда можно эквивалентным образом преобразовать для подчинения последней форме, преобразовав ее в машину Тьюринга и обратно. Некоторые авторы[нужна цитата ] используйте последнюю форму как определение неограниченная грамматика.
Вычислительные свойства
В проблема решения о том, является ли данная строка может быть сгенерирована данной неограниченной грамматикой, эквивалентна проблеме того, может ли она быть принята машиной Тьюринга, эквивалентной грамматике. Последняя проблема называется Проблема с остановкой и неразрешима.
Рекурсивно перечисляемые языки закрыто под Клини звезда, конкатенация, союз, и пересечение, но не под установить разницу; видеть Рекурсивно перечисляемый язык # Свойства замыкания.
Эквивалентность неограниченных грамматик машинам Тьюринга подразумевает существование универсальной неограниченной грамматики, грамматики, способной принимать любой другой язык неограниченной грамматики с учетом описания языка. По этой причине теоретически возможно построить язык программирования на основе неограниченных грамматик (например, Чт ).
Смотрите также
- Лямбда-исчисление
- Система Semi-Thue - не различает терминальные и нетерминальные символы, допускает пустые левые части
Примечания
- ^ На самом деле, в этом нет строгой необходимости, поскольку неограниченная грамматика не делает различий между ними. Обозначение существует исключительно для того, чтобы знать, когда прекратить генерировать сентенциальные формы грамматики; точнее язык признанный ограничивается строками терминальных символов
- ^ Хотя Хопкрофт и Ульман (1979) не упоминают мощности , , явно доказательство их теоремы 9.3 (построение эквивалентной машины Тьюринга из заданной неограниченной грамматики, стр. 221, см. раздел # Эквивалентность машинам Тьюринга ) молчаливо требует конечности и конечные длины всех строк в правилах . Любой член или же этого не происходит в можно опустить, не влияя на сгенерированный язык.
Рекомендации
- ^ а б c d Хопкрофт, Джон; Ульман, Джеффри Д. (1979). Введение в теорию автоматов, языки и вычисления (1-е изд.). Эддисон-Уэсли. ISBN 0-201-44124-1.