Spojovací gramatika - Conjunctive grammar
Spojovací gramatiky jsou třídou formálních gramatik studovaných v formální jazyk Teorie. Rozšiřují základní typ gramatiky, bezkontextové gramatiky,s spojení operace. Kromě explicitní spojky umožňují spojovací gramatiky implicitní disjunkce reprezentováno více pravidly pro jeden neterminální symbol, který je jediným logickým spojovacím výrazem vyjádřitelným v bezkontextových gramatikách. Konjunkci lze použít zejména k určení průniku jazyků. Další rozšíření spojovací gramatiky známé jako Booleovské gramatiky navíc umožňuje explicitní negace.
Pravidla spojovací gramatiky mají formu
kde je neterminální a, ..., jsou řetězce tvořené symboly v a (konečné sady koncové a neterminální symboly Takové pravidlo neformálně tvrdí, že každý řetězec přes který splňuje každou ze syntaktických podmínek představovaných , ..., proto splňuje podmínku definovanou v .
Formální definice
Spojovací gramatika je definovánan-tice kde
- PROTI je konečná množina; každý prvek je nazýván neterminální symbol nebo a proměnná. Každá proměnná představuje jiný typ fráze nebo klauze ve větě. Proměnné se také někdy nazývají syntaktické kategorie.
- Σ je konečná sada termináls, disjunktní od PROTI, které tvoří skutečný obsah věty. Sada terminálů je abeceda jazyka definovaného gramatikou G.
- R je konečná sada inscenací, každá z těchto forem pro některé v a . Členové R se nazývají pravidlos nebo Výrobas gramatiky.
- S je počáteční proměnná (nebo počáteční symbol), která se používá k reprezentaci celé věty (nebo programu). Musí to být prvek PROTI.
Je běžné vypsat všechny pravé strany pro stejnou levou stranu na stejném řádku pomocí | (dále jen symbol potrubí ) je oddělit. Pravidla a lze tedy psát jako .
Existují dvě ekvivalentní formální definice jazyka specifikovaného spojovací gramatikou. Jedna definice je založena na reprezentaci gramatik systému jazykové rovnice s sjednocením, průnikem a zřetězením a vzhledem k jeho nejmenšímu řešení. Druhá definice zobecňujeChomsky generativní definice bezkontextových gramatik pomocí přepisování termínů přes spojku a zřetězení.
Definice odvozením
Pro všechny struny , říkáme u přímo výnosy proti, psáno jako , pokud
- buď existuje pravidlo takhle a ,
- nebo existuje řetězec takhle a .
Pro libovolný řetězec říkáme G generuje w, psáno jako , pokud takhle .
Jazyk gramatiky je sada všech řetězců, které generuje.
Příklad
Gramatika , s produkcemi
- ,
- ,
- ,
- ,
- ,
je spojovací. Typická derivace je
To lze ukázat . Jazyk není kontextový, což dokazuje čerpání lemmatu pro bezkontextové jazyky.
Algoritmy analýzy
Ačkoli je expresivní síla konjunktivní gramatiky větší než u bezkontextových gramatik, konjunktivní gramatiky si zachovávají některé z nich. Nejdůležitější je, že existují zobecnění hlavních algoritmů pro analýzu bez kontextu, včetně lineárního času rekurzivní sestup kubický čas generalizovaný LR kubický čas Cocke-Kasami-mladší,stejně jako Valiant's algoritmus běží tak rychle jako násobení matic.
Teoretické vlastnosti
Vlastnost, která je již nerozhodnutelná pro bezkontextové jazyky nebo jejich konečné průniky, musí být nerozhodnutelná také pro spojovací gramatiky; tyto zahrnují: prázdnota, konečnost, pravidelnost, bezkontextovost,[n 1] začlenění a rovnocennost.[č. 2]
Rodina spojovacích jazyků je uzavřena spojením, průnikem, zřetězení a Kleene hvězda, ale ne pod řetězový homomorfismus, předpona, přípona a podřetězec. Uzavření pod doplňkem a pod homomorfismem řetězce bez ε jsou stále otevřené problémy (od roku 2001).[1]:533
Byla prozkoumána expresivní síla gramatik nad jednopísmennou abecedou.[Citace je zapotřebí ]
Tato práce poskytla základ pro studium jazykové rovnice obecnější formy.
Synchronizované automaty se střídavým posunem dolů
Aizikowitz a Kaminski[2] představil novou třídu pushdown automaty (PDA) synchronizované střídavé pushdown automaty (SAPDA). Dokázali, že je ekvivalentní spojivkovým gramatikám, stejně jako nedeterministické PDA jsou ekvivalentní bezkontextovým gramatikám.
Poznámky
Reference
- ^ Alexander Okhotin (2001). „Spojovací gramatiky“ (PDF). Journal of Automata, Languages and Combinatorics. 6 (4): 519–535.
- ^ Aizikowitz, Tamar; Kaminski, Michael (2011). "Konjunktivní gramatiky LR (0) a deterministické synchronizované střídavé zásobní automaty". Počítačová věda - teorie a aplikace. Přednášky z informatiky. 6651. str. 345–358. doi:10.1007/978-3-642-20712-9_27. ISBN 978-3-642-20711-2. ISSN 0302-9743.
externí odkazy
- Artur Jeż (2007). "Spojovací gramatiky generují nepravidelné unární jazyky" (PDF) (Prezentace se konaly na Mezinárodní konference o vývoji v teorii jazyků ). Citováno 5. listopadu 2019.
- „Stránka Alexandra Okhotina o spojovacích gramatikách“. 9. října 2011. Citováno 5. listopadu 2019.
- Alexander Okhotin (2007). „Devět otevřených problémů pro konjunktivní a booleovské gramatiky“. Bulletin EATCS. Archivovány od originál dne 29. 9. 2007.
- Alexander Okhotin (2013). "Konjunktivní a booleovské gramatiky: Skutečný obecný případ bezkontextových gramatik". Recenze informatiky. 9: 27–59. doi:10.1016 / j.cosrev.2013.06.001.
Tento příspěvek nahrazuje dřívější průzkumy, „Přehled spojovacích gramatik“ (Bulletin of EATCS, 2004) a „Devět otevřených problémů pro spojovací a booleovské gramatiky“
- Jeż, Artur (2008). "Spojovací gramatiky generují nepravidelné unární jazyky". International Journal of Foundations of Computer Science. 19 (3): 597–615. doi:10.1142 / S012905410800584X. Verze technické zprávy (pdf)[trvalý mrtvý odkaz ]