Chomského hierarchie je klasifikace formálních jazyků a formálních gramatik , podle které jsou rozděleny do 4 typů podle jejich podmíněné složitosti. Navrhl profesor MIT , lingvista Noam Chomsky .
Formální gramatiky lze podle Chomského rozdělit do čtyř typů. Pro přiřazení gramatiky ke konkrétnímu typu je nutné, aby všechna její pravidla (produkce) odpovídala určitým schématům.
Gramatika s frázovou strukturou G je algebraická struktura , uspořádaná čtveřice (V T , V N , P, S), kde [1] :
Zde je množina všech řetězců v abecedě a je to množina neprázdných řetězců v abecedě .
Typ 0 podle Chomského klasifikace zahrnuje neomezené gramatiky - gramatiky s frázovou strukturou , tedy všechny formální gramatiky bez výjimky. Pravidla lze napsat takto:
,kde je libovolný neprázdný řetězec obsahující alespoň jeden neterminální [2] symbol a je libovolný řetězec symbolů z abecedy.
Vzhledem ke své složitosti nemají takové gramatiky praktické využití.
Tento typ zahrnuje kontextově závislé (KZ) gramatiky a gramatiky bez zkrácení. Pro gramatiku jsou všechna pravidla [3] :
Tyto třídy gramatik jsou ekvivalentní. Lze je použít při analýze textů v přirozených jazycích, ale při konstrukci překladačů se pro svou složitost prakticky nepoužívají. U kontextově závislých gramatik je dokázáno tvrzení: pomocí nějakého algoritmu lze v konečném počtu kroků určit, zda řetězec terminálních symbolů patří k danému jazyku či nikoli.
Tento typ zahrnuje bezkontextové (CS) gramatiky . Pro gramatiku platí všechna pravidla:
Gramatiky COP se široce používají k popisu syntaxe počítačových jazyků (viz parsování ).
Třetí typ zahrnuje regulární gramatiky (automatické) - nejjednodušší z formálních gramatik. Jsou bezkontextové, ale s omezenou funkčností.
Všechny regulární gramatiky lze rozdělit do dvou ekvivalentních tříd, které pro gramatiku typu III budou mít pravidla v následujícím tvaru:
Regulární gramatiky se používají k popisu nejjednodušších konstrukcí: identifikátory , řetězce , konstanty , stejně jako jazyky symbolických instrukcí , příkazové procesory atd.
Formální jazyky jsou klasifikovány podle typů gramatik, které je definují. Stejný jazyk však může být definován různými gramatikami, které patří k různým typům. V tomto případě se má za to, že jazyk patří k nejjednodušším z nich. Takže jazyk popsaný gramatikou s frázovou strukturou, kontextovými a bezkontextovými gramatikami bude bezkontextový.
Stejně jako u gramatik je složitost jazyka určena jeho typem. Nejsložitější jsou jazyky s frázovou strukturou (to zahrnuje přirozené jazyky), dále - KZ-jazyky, KS-jazyky a nejjednodušší - regulární jazyky.
Formální jazyky a formální gramatiky | |
---|---|
Obecné pojmy | |
Typ 0 | |
Typ 1 |
|
Typ 2 | |
Typ 3 | |
rozebrat |