Chomského hierarchie

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 .

Klasifikace gramatik

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.

Typ 0 - Neomezeno

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í.

Typ 1 – kontextově citlivý

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.

Typ 2 - bezkontextový

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í ).

Typ 3 - běž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.

Klasifikace jazyků

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.

Poznámky

  1. Cook, Baze, 1990 , str. 258,264.
  2. Serebryakov V. A., Galochkin M. P., Gonchar D. R., Furugyan M. G. Teorie a implementace programovacích jazyků. - M. : MZ-Press, 2006. - S. 21. - ISBN 5-94073-094-9 .
  3. Cook, Baze, 1990 , str. 268.

Literatura