Jump to content

Индексированная грамматика

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

Определение

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

Современное определение Хопкрофта и Ульмана

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

В современных публикациях после Хопкрофта и Ульмана (1979): [2] индексированная грамматика формально определяется как набор из 5 G = ⟨ N , T , F , P , S ⟩ где

В постановках, а также при выводе индексированных грамматик строка («стек») σ F * индексных символов прикреплен к каждому нетерминальному символу A N , обозначенному A [ σ ]. [примечание 1] За терминальными символами не могут следовать стеки индексов.Для индексного стека σ F * и строка α ∈ ( N T ) * из нетерминальных и терминальных символов α [ σ ] обозначает результат присоединения [ σ ] к каждому нетерминалу в α ; например, если равно BC d символами E с α терминальными a , d T и B , C , E N α нетерминальными символами, то [ σ ] обозначает B σ [ ] ] C [ σ ] d E [ σ . Используя эти обозначения, каждое производство в P должно иметь вид

  1. А [σ] → α[σ],
  2. A [σ] → B [ f σ], или
  3. А [ ж σ] → а[σ],

где A , B N — нетерминальные символы, f F — индекс, σ F * является строкой индексных символов, а α ∈ ( N T ) * представляет собой строку нетерминальных и терминальных символов. Некоторые авторы пишут «..» вместо « σ » для стека индексов в производственных правилах; правило типа 1, 2 и 3 тогда читается как A [..]→ α [..], A [..] → B [ f ..] и A [ f ..] → α [..] , соответственно.

Выводы аналогичны выводам в контекстно-свободной грамматике, за исключением стека индексов, прикрепленного к каждому нетерминальному символу. такая продукция, как, например, A [ σ ] → B [ σ ] C [ σ Когда применяется ], стек индексов A копируется как в B, так и в C .Более того, правило может помещать индексный символ в стек или извлекать его «самый верхний» (т. е. самый левый) индексный символ.

Формально отношение ⇒ («прямой вывод») определено на множестве ( N [ F * ]∪ T ) * «форм предложения» следующим образом:

  1. Если A [ σ ] → α [ σ ] является продукцией типа 1, то β A [ φ ] γ β α [ φ ] γ , используя приведенное выше определение. левой части правила То есть стек индексов φ копируется в каждый нетерминал правой части.
  2. Если A [ σ ] → B [ ] — продукция типа 2, то β A [ φ ] γ β B [ ] γ . То есть стек индексов правой стороны получается из стека φ левой стороны путем помещения в него f .
  3. Если A [ ] → α [ σ ] является продукцией типа 3, то β A [ ] γ β α [ φ ] γ , снова используя определение α [ σ ]. То есть первый индекс f извлекается из стека левой части, который затем распределяется по каждому нетерминалу правой части.

Как обычно, отношение вывода определяется как рефлексивное транзитивное замыкание прямого вывода ⇒.Язык L ( G ) = { w T * : S w } — множество всех строк терминальных символов, выводимых из начального символа.

Исходное определение Ахо

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

Исторически концепция индексированных грамматик была впервые введена Альфредом Ахо (1968). [3] используя другой формализм.Ахо определил индексированную грамматику как набор из 5 элементов ( N , T , F , P , S ), где

  1. N — конечный алфавит переменных или нетерминальных символов.
  2. T — конечный алфавит терминальных символов.
  3. Ф 2 Н × ( Н Т ) * — это конечное множество так называемых флагов (каждый флаг сам по себе является набором так называемых индексных продукций )
  4. P N × ( NF * Т ) * это конечное множество продукций
  5. S N начальный символ

Прямые выводы заключались в следующем:

  • Продукция p = ( A X 1 η 1 X k η k ) из P соответствует нетерминалу A N , за которым следует его (возможно, пустая) строка флагов ζ F * . В контексте γ δ через p выводится в γ X 1 θ 1 X k θ k δ , где θ i = η i ζ, если X i было нетерминалом, и пустое слово в противном случае. старые флаги A Поэтому копируются в каждый новый нетерминал, созданный p . Каждое такое производство можно смоделировать соответствующими производствами типа 1 и 2 в формализме Хопкрофта-Ульмана.
  • Произведение индекса p = ( A X 1 X k ) ∈ f соответствует Afζ (флаг f, из которого он исходит, должен соответствовать первому символу, следующему за нетерминалом A ), и копирует оставшуюся индексную строку ζ в каждый новый нетерминал: γ Afζ δ выводится в γ X 1 θ 1 X k θ k δ , где θ i — пустое слово, когда X i является терминалом, и ζ , когда оно нетерминалом. Каждое такое производство соответствует производству типа 3 в формализме Хопкрофта-Ульмана.

Этот формализм, например, используется Хаяси (1973, стр. 65-66). [4]

На практике стопки индексов могут подсчитывать и запоминать, какие правила применялись и в каком порядке. Например, индексированные грамматики могут описывать контекстно-зависимый язык троек слов { www : w ∈ { a , b } * }:

С [ σ ] С [ ] Т [ ] а Т [ σ ]
С [ σ ] S [ ] Т [ гσ ] бТ ] [ σ
С [ σ ] Т [ с ] Т [ с ] Т [ с Т [] е

производным от abbabbabb Тогда будет

S [] S [ g ] S [ гг ] S [ fgg ] T [ fgg ] T [ fgg ] T [ fgg ] a T [ gg ] T [ fgg ] T [ fgg ] ab T [ g ] T [ fgg ] T [ fgg ] abb T [] T [ fgg ] T [ fgg ] abb T [ fgg ] T [ fgg ] ... abb abb T [ fgg ] ... abb abb абб .

В качестве другого примера, грамматика G = ⟨ { S , T , A , B , C }, { a , b , c }, { f , g }, P , S ⟩ порождает язык { a н б н с н : n ≥ 1 }, где производственный набор P состоит из

S [ σ ] → Т [ ] А [ ] → а А [ σ ] А [ ] → а
Т [ σ ] → Т [ ] B [ ] → б B [ σ ] Б [ гσ ] → б
Т [ σ ] → А [ σ ] B [ σ ] C [ σ ] C [ ] → c C [ σ ] C [ ] → c

Пример вывода:

S [] T [ g ] T [ fg ] A [ fg ] B [ fg ] C [ fg ] aA [ g ] B [ fg ] C [ fg ] aA [ g ] bB [ g ] C [ fg ] aA [ g ] bB [ g ] cC [ g ] aa bB [ g ] cC [ g ] aa bb cC [ g ] aa bb cc .

Оба примера языка не являются контекстно-свободными по лемме о накачке .

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

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

Хопкрофт и Ульман склонны рассматривать индексированные языки как «естественный» класс, поскольку они порождены несколькими формализмами, отличными от индексированных грамматик, а именно. [5]

Хаяши [4] обобщил лемму о накачке на индексированные грамматики.И наоборот, Гилман [10] [11] дает «лемму о сокращении» для индексируемых языков.

Линейные индексированные грамматики

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

Джеральд Газдар определил второй класс — линейные индексированные грамматики ( LIG ). [14] требуя, чтобы не более одного нетерминала в каждом производстве было указано как получатель стека, [примечание 2] тогда как в обычной индексированной грамматике все нетерминалы получают копии стека. Формально линейная индексированная грамматика определяется аналогично обычной индексированной грамматике, но требования к форме продукции изменяются следующим образом:

  1. А [ σ ] → α [] B [ σ ] β [],
  2. А [ σ ] → α [] B [ ] β [],
  3. А [ ] → α [] B [ σ ] β [],

где A , B , f , σ , α используются, как указано выше , и β ∈ ( N T ) * представляет собой строку нетерминальных и терминальных символов, таких как α . [примечание 3] Кроме того, отношение прямого вывода ⇒ определяется аналогично приведенному выше. Этот новый класс грамматик определяет строго меньший класс языков. [15] который принадлежит к умеренно контекстно-зависимым классам.

Язык { www : w ∈ { a , b } * } порождается индексированной грамматикой, но не линейной индексированной грамматикой, в то время как { ww : w ∈ { a , b } * } и { а н б н с н : n ≥ 1 } порождаются линейной индексированной грамматикой.

Если допускаются как исходные, так и измененные правила производства, языковой класс остается индексированными языками. [16]

Обозначая σ произвольную последовательность символов стека, мы можем определить грамматику языка L = { a н б н с н | п ≥ 1 } [примечание 4] как

С [ σ ] а S [ ] c
С [ σ ] Т [ с ]
Т [ ] Т [ п ] б
Т [] е

Чтобы получить строку abc, нам нужно выполнить следующие действия:

S [] ⇒ aS [ f ] c aT [ f ] c aT [] bc abc

Сходным образом:

S aS [ f ] c aaS [ ff ] cc cc ⇒ aaT [ ff ] bcc ⇒ aaT [ f ] bbcc aaT ] aabbcc [ [ ]

Вычислительная мощность

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

Языки с линейной индексацией являются подмножеством индексированных языков, и, таким образом, все LIG могут быть перекодированы как IG, что делает LIG менее мощными, чем IG. Преобразование из LIG в IG относительно простое. [17] Правила LIG в целом выглядят примерно так , по модулю push/pop части правила перезаписи. Символы и представляют строки терминальных и/или нетерминальных символов, и любой нетерминальный символ в любом из них должен иметь пустой стек по определению LIG. Это, конечно, противоречит тому, как определяются IG: в IG нетерминалы, чьи стеки не передаются или не извлекаются, должны иметь точно такой же стек, что и переписанный нетерминал. Таким образом, каким-то образом нам нужно иметь нетерминалы в и которые, несмотря на наличие непустых стопок, ведут себя так, как если бы у них были пустые стопки.

Рассмотрим правило как примерный случай. При преобразовании этого в IG замена должно быть какое-то это ведет себя точно так же, как независимо от того, что является. Чтобы добиться этого, мы можем просто иметь пару правил, которые принимают любые где не пуст и извлекает символы из стека. Затем, когда стек пуст, его можно переписать как .

Мы можем применить это в целом, чтобы получить IG из LIG. Например, если LIG для языка заключается в следующем:

Правило предложения здесь не является правилом IG, но, используя приведенный выше алгоритм преобразования, мы можем определить новые правила для , изменив грамматику на:

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

Связь с другими формализмами

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

Виджай-Шанкер и Вейр (1994) [18] демонстрирует, что линейные индексированные грамматики, комбинаторные категориальные грамматики , древовидные грамматики и головные грамматики определяют один и тот же класс строковых языков.Их формальное определение линейных индексированных грамматик [19] отличается от вышеперечисленного . [ нужны разъяснения ]

LIG (и их слабо эквиваленты ) строго менее выразительны (то есть они генерируют правильное подмножество), чем языки, созданные другим семейством слабо эквивалентного формализма, в которое входят: LCFRS , MCTAG , MCFG и минималистские грамматики (MG). Последнее семейство также можно проанализировать за полиномиальное время . [20]

Распределенные индексные грамматики

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

Другая форма индексированных грамматик, представленная Штаудахером (1993), [12] — это класс грамматик распределенного индекса (DIG). Что отличает DIG от индексированных грамматик Ахо, так это распространение индексов. В отличие от IG Ахо, которые распределяют весь стек символов по всем нетерминалам во время операции перезаписи, DIG делят стек на подстеки и распределяют подстеки по выбранным нетерминалам.

Общая схема правил для правила двоичного распределения DIG имеет вид

X[f1...fifi+1...fn] → α Y[f1...fi] β Z[fi+1...fn[

Где α, β и γ — произвольные терминальные строки. Для троичной распределяющей строки:

[ f1...fifi+1...fjfj+1...fn] → α Y[f1...fi] β Z[fi+1...​​​​​​​​​​​​​​​​​​​​​​​​​​​​f j ] γ W [ f j +1 ... f n ] η

И так далее для большего количества нетерминалов в правой части правила перезаписи. В общем, если в правой части правила перезаписи находится m нетерминалов, стек разделяется m способами и распределяется между новыми нетерминалами. Обратите внимание, что существует особый случай, когда раздел пуст, что фактически делает правило правилом LIG. Таким образом, языки с распределенным индексом являются расширенным набором языков с линейной индексацией.

См. также

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

Примечания

[ редактировать ]
  1. ^ «[» и «]» — метасимволы, обозначающие стек.
  2. ^ все остальные нетерминалы получают пустой стек
  3. ^ Jump up to: а б Чтобы вообще сгенерировать какую-либо строку, необходимо допустить, что некоторые произведения не имеют нетерминального символа в правой части. Однако Газдар не стал обсуждать этот вопрос.
  4. ^ См. правильно проиндексированная грамматика для того же языка, указанная выше . Последнее правило, т. T []→ε линейной индексированной грамматики не соответствует определению Газдара в строгом смысле, ср. [примечание 3]
  1. ^ Jump up to: а б Хопкрофт, Джон Э .; Джеффри Д. Уллман (1979). Введение в теорию автоматов, языки и вычисления . Аддисон-Уэсли. ISBN  978-0-201-02988-8 .
  2. ^ Хопкрофт и Ульман (1979), [1] Разд.14.3, стр.389-390. Этот раздел опущен во 2-м издании 2003 г.
  3. ^ Ахо, Альфред (1968). «Индексированные грамматики — расширение контекстно-свободных грамматик» . Журнал АКМ . 15 (4): 647–671. дои : 10.1145/321479.321488 . S2CID   9539666 .
  4. ^ Jump up to: а б Хаяси, Такеши (1973). «О деревьях вывода индексированных грамматик: расширение uvwxy -теоремы» . Публикации НИИ математических наук . 9 : 61–92. дои : 10.2977/prims/1195192738 .
  5. ^ Хопкрофт и Ульман (1979), [1] Библиографические примечания, стр.394-395.
  6. ^ Альфред Ахо (1969). «Вложенные стековые автоматы» . Журнал АКМ . 16 (3): 383–406. дои : 10.1145/321526.321529 . S2CID   685569 .
  7. ^ Майкл Дж. Фишер (1968). «Грамматики с макроподобными произведениями». Учеб. 9-я Энн. IEEE симп. по теории коммутации и автоматов (SWAT) . стр. 131–142. дои : 10.1109/SWAT.1968.12 .
  8. ^ Шейла А. Грейбах (1970). «Полные AFL и вложенная итерационная замена» . Информация и контроль . 16 (1): 7–35. дои : 10.1016/s0019-9958(70)80039-0 .
  9. ^ ЦЭ Майбаум (1974). «Обобщенный подход к формальным языкам» . Журнал компьютерных и системных наук . 8 (3): 409–439. дои : 10.1016/s0022-0000(74)80031-0 .
  10. ^ Роберт Х. Гилман (1996). «Сжимающая лемма для индексируемых языков». Теоретическая информатика . 163 (1–2): 277–281. arXiv : математика/9509205 . дои : 10.1016/0304-3975(96)00244-7 . S2CID   14479068 .
  11. ^ Роберт Х. Гилман (сентябрь 1995 г.). «Сжимающая лемма для индексируемых языков». arXiv : математика/9509205 .
  12. ^ Jump up to: а б Штаудахер, Питер (1993), «Новые рубежи за пределами контекстной свободы: DI-грамматики (DIG) и DI-автоматы». (PDF) , Шестая конференция Европейского отделения Ассоциации компьютерной лингвистики (EACL '93) , стр. 358–367.
  13. ^ Дэвид Дж. Вейр; Аравинд К. Джоши (1988). «Комбинаторные категориальные грамматики: порождающая сила и связь с линейными системами контекстно-свободного переписывания» (PDF) . Учеб. 26-е заседание доц. Вычислить. Линг . стр. 278–285.
  14. ^ Согласно Штаудахеру (1993, стр.361 слева, раздел 2.2), [12] название «линейные индексированные грамматики» не использовалось в статье Газдара 1988 года, но появилось позже, например, в Weir and Joshi (1988). [13]
  15. ^ Газдар, Джеральд (1988). «Применимость индексированных грамматик к естественным языкам». В У. Рейле и К. Рорере (ред.). Синтаксический анализ естественного языка и лингвистические теории . Исследования в области лингвистики и философии. Том. 35. Издательство Д. Рейделя. стр. 69–94. ISBN  978-1-55608-055-5 .
  16. ^ Газдар (1988), Приложение, стр.89.
  17. ^ Газдар 1988, Приложение, стр.89-91.
  18. ^ Виджай-Шанкер, К.; Вейр, Дэвид Дж. 1994. (1994). «Эквивалентность четырех расширений контекстно-свободных грамматик» . Теория математических систем . 27 (6): 511–546. дои : 10.1007/bf01191624 . S2CID   12336597 . {{cite journal}}: CS1 maint: числовые имена: список авторов ( ссылка )
  19. ^ стр.517-518
  20. ^ Йохан ФАК ван Бентем; Алиса тер Мейлен (2010). Справочник по логике и языку (2-е изд.). Эльзевир. п. 404. ИСБН  978-0-444-53727-0 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b24e501844e2ce5fe010ad24dba74ac5__1675050480
URL1:https://arc.ask3.ru/arc/aa/b2/c5/b24e501844e2ce5fe010ad24dba74ac5.html
Заголовок, (Title) документа по адресу, URL1:
Indexed grammar - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)