Контекстно-залежна граматика

Матеріал з testwiki
Версія від 09:19, 5 травня 2021, створена imported>Lxlalexlxl (Посилання)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Контекстно-залежна граматика (скорочено КЗ-граматика) — формальна граматика типу 1 в ієрархії Чомскі. Особливість КЗ граматик в тому, що правила виводу здійснюють заміну нетермільнального символу лише у визначеному контексті.

Визначення

Контекстно-залежна граматика, це формальна граматика G=(N,T,P,S) де

  • N — множина нетермінальних символів
  • T — множина термінальних символів
  • SN — початковий символ
  • P — правила виводу виду αXβαγβ або Sε, за умов:
    • α,β(NT)*
    • XN
    • γ(NT)+
    • S відсутнє в правій частині правил виводу

Властивості

За єдиним винятком, визначені правила виводу мають вид αXβαγβ та γε.

Це означає, що нетермінальний символ X в контексті α та β буде замінено на γ. Але, в той час, як довжина γ має бути не менше за одиницю, і α і β можуть бути порожніми.

Наступні приклади крайніх випадків відповідають визначенню:

  • αXαγ
  • Xβγβ
  • Xγ

Аби зробити можливим роботу з порожнім словом, дозволяють правило Sε, за умови відсутності S в правій частині правил виводу.

Контекстно-залежні та монотонні граматики

Правила виводу КЗ-граматики не скорочують рядок в лівій частині. За винятком правила Sε для правил w1w2 виконується нерівність |w1||w2|. Таким чином, КЗ-граматика завжди монотонна. КЗ- та монотонні граматики породжують однаковий клас мов.

Деякі автори наводять визначення КЗ-граматик в контексті монотонних.[1] Правила виводу виду αXβαγβ розглядають як типову або канонічну форму правил КЗ-граматик.[2]

Нормальні форми

Кожній КЗ-граматиці відповідає граматика в нормальній формі Куроди з правилами виводу виду:

  • Aa
  • AB
  • ABC
  • ABCD

Граматика в нормальній формі Куроди монотонна, але не завжди контекстно-залежна.

КЗ нормальна форма подовжуюча, якщо має правила виду:

  • Aa
  • ABC
  • ABAC

Кожній КЗ граматиці відповідає подовжувальна граматика в нормальній формі.[3]

Альтернативне позначення

Мовознавці використовують інші позначення для правил виводу.[4]. Правила підставляння визначають аналогічно правилам виводу, а в правій частині вказують контекст, в якому можна застосувати правило: Xγ/α____β/

Мови породжені КЗ-граматиками

Контекстно-залежні граматики породжують контекстно-залежні мови. Тобто, кожна КЗ граматика породжує КЗ мову, і для кожної КЗ мови існує КЗ граматика, що її породжує.

Контекстно-залежні мови можна розпізнати недетермінованою лінійно-обмеженою машиною Тюринга (недетермінована машина Тюринга зі стрічкою обмеженої довжини).

Визначення приналежності слва мові (xL) для КЗ-мов розв'язувана.

Приклад

Контекстно-залежну мову L={anbncn|n1} слів, які складаються з однакової кількості літер a за якими йдуть b та c, визначають наступною КЗ граматикою[5]:

G=(N,T,P,S) з термінальними символами T={a,b,c} та нетермінальними N={B,C,H,S} та правилами виводу P:

  1. SaSBCaBC
  2. CBHB
  3. HBHC
  4. HCBC
  5. aBab
  6. bBbb
  7. bCbc
  8. cCcc

Слово aabbccL можна отримати таким чином (підкреслено контекст, в якому відбувається заміна):

S_1aS_BC1aaBCB_C2aaBHB_C3aaBHC_C4aaB_BCC5aabB_CC6aabbC_C7aabbcC_8aabbcc

Див. також

Примітки

Шаблон:Reflist

Література

Шаблон:Портал

  1. наприклад Шаблон:Книга
  2. Шаблон:Книга
  3. див Rozenberg та Salomaa, Handbook of Formal Languages, S.190
  4. Шаблон:Книга
  5. Шаблон:Книга