Jump to content

Линейная грамматика

В информатике линейная грамматика — это контекстно-свободная грамматика , имеющая не более одного нетерминала в правой части каждого из своих произведений.

Линейный язык — это язык, порожденный некоторой линейной грамматикой.

Примером линейной грамматики является G с N = {S}, Σ = {a, b}, P с начальным символом S и правилами.

S → аСб
С → е

Он генерирует язык .

Связь с обычными грамматиками

[ редактировать ]

Два специальных типа линейных грамматик:

  • леволинейные , или леворегулярные грамматики, в которых все правила имеют вид A → αw где α либо пусто, либо один нетерминал, а w — строка терминалов;
  • праволинейные , или праворегулярные грамматики, в которых все правила имеют вид A → wα где w — строка терминалов, а α — либо пустая, либо один нетерминал.

Каждый из них может точно описать обычные языки .Регулярная грамматика — это грамматика, которая является леволинейной или праволинейной.

Заметьте, что путем добавления новых нетерминалов любую линейную грамматику можно заменить эквивалентной, в которой некоторые правила линейны слева, а некоторые — праволинейны. Например, правила G выше можно заменить на

С → аА
А → Сб
С → е

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

Выразительная сила

[ редактировать ]

Все регулярные языки линейны; и наоборот, примером линейного нерегулярного языка является { a н б н }. как объяснено выше.Все линейные языки являются контекстно-свободными ; и наоборот, примером контекстно-свободного нелинейного языка является язык Дика хорошо сбалансированных пар скобок.Следовательно, регулярные языки являются собственным подмножеством линейных языков, которые, в свою очередь, являются собственным подмножеством контекстно-свободных языков.

Хотя обычные языки детерминированы , существуют недетерминированные линейные языки. четной длины Например, язык палиндромов в алфавите 0 и 1 имеет линейную грамматику S → 0S0 | 1С1 | е. Произвольная строка этого языка не может быть проанализирована без предварительного чтения всех ее букв, а это означает, что автомат с проталкиванием вниз должен пробовать альтернативные переходы состояний, чтобы приспособиться к различным возможным длинам полуразобранной строки. [1] Этот язык недетерминирован. Поскольку недетерминированные контекстно-свободные языки не могут быть приняты за линейное время. [ нужны разъяснения ] В общем случае линейные языки не могут быть приняты за линейное время. Более того, неясно, является ли данный контекстно-свободный язык линейным контекстно-свободным языком. [2]

Язык является линейным тогда и только тогда, когда он может быть сгенерирован однооборотным автоматом с выталкиванием — автоматом с выталкиванием, который, как только он начинает появляться, больше никогда не выдвигается.

Свойства замыкания

[ редактировать ]

Положительные случаи

[ редактировать ]

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

Если L — линейный язык, а M — регулярный язык, то пересечение снова линейный язык; другими словами, линейные языки замкнуты относительно пересечения с регулярными множествами.

Линейные языки замкнуты относительно гомоморфизма и обратного гомоморфизма . [3]

Как следствие , линейные языки образуют полное трио . Полные трио в целом представляют собой языковые семьи, обладающие еще несколькими желательными математическими свойствами.

Отрицательные случаи

[ редактировать ]

Линейные языки не замкнуты при пересечении. Например, пусть , то их пересечение не только не линейно, но и не контекстно-свободно. См. лемму о накачке для контекстно-свободных языков .

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

  1. ^ Хопкрофт, Джон ; Раджив Мотвани ; Джеффри Уллман (2001). Введение в теорию автоматов, языки и вычисления, 2-е издание . Аддисон-Уэсли. стр. 249–253.
  2. ^ Грейбах, Шейла (октябрь 1966 г.). «Неразрешимость распознавания линейных контекстно-свободных языков» . Журнал АКМ . 13 (4): 582–587. дои : 10.1145/321356.321365 . S2CID   37003419 .
  3. ^ Джон Э. Хопкрофт и Джеффри Д. Ульман, Введение в теорию автоматов, языки и вычисления , издательство Addison-Wesley Publishing, Ридинг, Массачусетс, 1979. ISBN   0-201-02988-X ., Исх. 11.1, стр. 282е
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d9a54f23bc8ad50ed2a2e84f7fff129c__1722112380
URL1:https://arc.ask3.ru/arc/aa/d9/9c/d9a54f23bc8ad50ed2a2e84f7fff129c.html
Заголовок, (Title) документа по адресу, URL1:
Linear grammar - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)