Chomského hierarchie

Chomského hierarchie tříd jazyků

Chomského hierarchie je hierarchie tříd formálních gramatik generujících formální jazyky. Byla vytvořena Noamem Chomským v roce 1956.[1]

Chomského hierarchie se skládá z následujících tříd:[2][3][4][pozn. 1]

Gramatiky typu 0 (frázové/neomezené gramatiky)
Zahrnují v sobě všechny formální gramatiky, generují právě ty jazyky, které mohou být rozpoznané nějakým Turingovým strojem. Tyto jazyky se někdy nazývají rekurzivně spočetné jazyky. V případě, že je jazyk generován úplným Turingovým strojem ( w Σ {\displaystyle \forall w\in \Sigma ^{*}} Turingův stroj akceptuje nebo zamítá), je tento jazyk nazýván jako rekurzivní.
Gramatiky typu 1 (kontextové gramatiky, Context-sensitive, CSG)
Generují kontextové jazyky. Tyto gramatiky se skládají z pravidel α A β α γ β {\displaystyle \alpha A\beta \rightarrow \alpha \gamma \beta } , kde A {\displaystyle A} je neterminál α , β {\displaystyle \alpha ,\beta } a γ {\displaystyle \gamma } jsou řetězce terminálů a neterminálů, přičemž γ {\displaystyle \gamma } je neprázdný ( α {\displaystyle \alpha } a β {\displaystyle \beta } prázdné být mohou). Pravidlo S ϵ {\displaystyle S\rightarrow \epsilon } je povoleno, pokud se S {\displaystyle S} nevyskytuje na pravé straně žádného pravidla. Tyto jazyky jsou právě jazyky rozpoznatelné lineárně ohraničeným Turingovým strojem.
Gramatiky typu 2 (bezkontextové gramatiky)
Generují bezkontextové jazyky. Skládají se z pravidel A γ {\displaystyle A\rightarrow \gamma } s neterminálem A {\displaystyle A} a řetězcem terminálů a neterminálů γ {\displaystyle \gamma } . Tyto jazyky jsou právě jazyky rozpoznatelné nějakým nedeterministickým zásobníkovým automatem.
Upřesnění: Gramatiky typu 2 mohou obsahovat ϵ {\displaystyle \epsilon } pravidla. Přesto jsou jimi generované jazyky podmnožinou jazyků generovaných gramatikami typu 1, protože existuje algoritmus na převod libovolné gramatiky typu 2 na gramatiku bez ϵ {\displaystyle \epsilon } pravidel.
Gramatiky typu 3 (regulární gramatiky)
Generují regulární jazyky. Pravidla těchto gramatik jsou omezena na jeden neterminál na levé straně. Pravá strana se skládá z terminálu, který může být následován jedním neterminálem (tedy pravidla A a {\displaystyle A\rightarrow a} a A a B {\displaystyle A\rightarrow aB} , kde a Σ , A , B N {\displaystyle a\in \Sigma ,A,B\in N} ). Tyto gramatiky se také nazývají pravolineární. Obdobně se definují i levolineární gramatiky, kde může být na pravé straně pravidel jeden terminál předcházen jedním neterminálem. Nikdy se však nesmí vyskytovat v jedné gramatice zároveň pravidla jak z pravolineární gramatiky, tak z levolineární. Pravé lineární gramatiky a levé lineární gramatiky jsou ekvivalentní. Pravidlo S ϵ {\displaystyle S\rightarrow \epsilon } je povoleno, pokud se S {\displaystyle S} nevyskytuje na pravé straně žádného pravidla. Tyto jazyky jsou právě jazyky rozpoznatelné konečným automatem.

Hierarchie

Platí, že každý regulární jazyk je také bezkontextový, každý bezkontextový jazyk je také kontextový, každý kontextový jazyk je také rekurzivně spočetný – jak je naznačeno na obrázku. Jedná se zde vždy o vlastní podmnožiny, tj. existují rekurzivně spočetné jazyky, které nejsou rekurzivní, rekurzivní jazyky, které nejsou kontextové, kontextové jazyky, které nejsou bezkontextové a bezkontextové jazyky, které nejsou regulární.

Mezivrstvy

Kromě zmíněných čtyř typů gramatiky jsou i mezivrstvy. Pro přirozené jazyky se obvykle používají gramatiky, jejichž vyjadřovací síla je mezi gramatikami typu 1 a 2. Kategorie nese název gramatika spojování stromů (tree-adjoining grammar). Švýcarská němčina však spadá do vrstvy kontextové gramatiky.

Poznámka: Lidé často z faktu, že například třída regulárních jazyků je „menší“ než třída bezkontextových jazyků, vyvozují, že totéž platí i pro jazyky, tedy že regulární jazyky jsou „menší“ než bezkontextové jazyky. Tato představa je mylná; největší jazyk nad libovolnou abecedou (množina všech řetězců nad touto abecedou) je regulární jazyk, čili patří do „nejmenší“ z uvedených tříd. Lepší je představa, že zatímco regulární jazyky „vysekávají“ z množiny všech řetězců jazyky dosti hrubě, bezkontextové jazyky jemněji, kontextové ještě jemněji, atd. Například ve snaze přiblížit se kontextovému jazyku L = { a n b n c n ; n N } {\displaystyle L=\{a^{n}b^{n}c^{n};n\in N\}} lze sestrojit regulární jazyk, kde počet symbolů a {\displaystyle a} , b {\displaystyle b} , c {\displaystyle c} je stejný pouze do 1000 symbolů, tj. jazyk L R = { a n b n c n | n 1000 n N } { a i b j c k | i > 1000 j > 1000 k > 1000 } {\displaystyle L_{R}=\{a^{n}b^{n}c^{n}|n\leq 1000\land n\in N\}\cup \{a^{i}b^{j}c^{k}|i>1000\land j>1000\land k>1000\}} nebo bezkontextový jazyk, který obsahuje pouze ta slova z L R {\displaystyle L_{R}} , která obsahují stejně symbolů a {\displaystyle a} jako b {\displaystyle b} , a {\displaystyle a} jako c {\displaystyle c} nebo b {\displaystyle b} jako c {\displaystyle c} .

Odkazy

Poznámky

  1. Různí autoři mohou používat odlišné definice pro jednotlivé typy gramatik; mělo by jít dokázat, že generativní síla gramatiky určitého typu podle alternativní definice je stejná jako podle zde uvedených definic. Někteří autoři se nezabývají tím, zda gramatiky určitého typu jsou schopny vygenerovat prázdné slovo.

Reference

Literatura

  • CHOMSKY, Noam, 1956. Three models for the description of language. IRE Transactions on Information Theory. Roč. 2, čís. 3, s. 113–124. Dostupné v archivu pořízeném z originálu dne 2016-03-07. DOI 10.1109/TIT.1956.1056813. 
  • CHOMSKY, Noam, 1959. On certain formal properties of grammars. Information and Control 2. S. 137–167. Definice na str. 141–142. Dostupné online. 
  • MOLNÁR, Ľudovít; ČEŠKA, Milan; MELICHAR, Bořivoj, 1987. Gramatiky a jazyky. Bratislava: Alfa. 
  • CHYTIL, Michal, 1984. Automaty a gramatiky. Praha: SNTL. 

Související články

Teorie automatů: formální jazyky a formální gramatiky

Chomského hierarchie
typ 0
typ 1
typ 2
typ 3

gramatika
bez zvláštního názvu
indexovaná
stromová apod.
bez zvláštního názvu

jazyk
indexovaný
částečně kontextový
viditelný zásobník, vkládané slovo
bezhvězdičkový, neiterativní

nejjednodušší možný automat
rozhodovač, zaručeně skončí pro libovolný vstup
vnořený zásobník
vložený zásobník
zásobníkový automat, nedeterministický
viditelný zásobník, pro vkládané slovo
neperiodický konečný automat
Každá úroveň jazyků je podmnožinou své nadřazené úrovně.Každý automat a každá gramatika má svůj ekvivalent v nadřazené úrovni.
Autoritní data Editovat na Wikidatech