Chomského hierarchie jazyků je klasifikační systém, který kategorizuje formální gramatiky na základě jejich generativní síly. Navrhl jej Noam Chomsky, uznávaný lingvista a počítačový vědec, v 1950. letech 3. století. Hierarchie se skládá ze čtyř úrovní, z nichž každá představuje jinou třídu formálních jazyků. Tyto úrovně jsou známé jako Type-2 (Regular), Type-1 (Context-Free), Type-0 (Context-Sensitive) a Type-XNUMX (Neomezené).
Na nejnižší úrovni hierarchie máme jazyky typu 3, známé také jako regulární jazyky. Tyto jazyky mohou být rozpoznány konečnými automaty, jako jsou deterministické a nedeterministické konečné automaty. Regulární jazyky se vyznačují regulárními výrazy a regulárními gramatikami. Regulární výrazy jsou algebraické výrazy, které popisují vzory řetězců, zatímco regulární gramatiky se skládají z produkčních pravidel, která generují řetězce v regulárním jazyce. Příkladem regulárního jazyka je množina všech řetězců, které odpovídají danému regulárnímu výrazu, jako je jazyk všech binárních řetězců se sudým počtem 0s.
Posouváme-li se v hierarchii výše, setkáváme se s jazyky typu 2, také známými jako bezkontextové jazyky. Tyto jazyky lze rozpoznat zásobníkovými automaty, což jsou konečné automaty rozšířené o zásobník. Bezkontextové jazyky jsou popsány bezkontextovými gramatikami, které se skládají z produkčních pravidel, která generují řetězce v bezkontextovém jazyce. Bezkontextové gramatiky mají neterminální symboly, terminálové symboly a produkční pravidla, která specifikují, jak mohou být neterminály nahrazeny posloupností symbolů. Příkladem bezkontextového jazyka je množina všech dobře vytvořených aritmetických výrazů, kde jsou závorky vyvážené a operátory jsou aplikovány správně.
Další úrovní hierarchie jsou jazyky typu 1, známé také jako kontextově citlivé jazyky. Tyto jazyky lze rozpoznat pomocí lineárně ohraničených automatů, což jsou konečné automaty s páskou, která se může pohybovat oběma směry. Kontextově citlivé jazyky jsou popsány kontextově citlivými gramatikami, které se skládají z produkčních pravidel, která generují řetězce v kontextově citlivém jazyce. Kontextově citlivé gramatiky mají další omezení, že délka pravé strany produkčního pravidla nemůže být kratší než délka levé strany. Příkladem kontextově citlivého jazyka je množina všech palindromů, kde řetězec čte stejně dopředu i dozadu.
Konečně, na vrcholu hierarchie máme jazyky typu 0, známé také jako neomezené jazyky. Tyto jazyky mohou být rozpoznány Turingovými stroji, což jsou abstraktní výpočetní zařízení schopná simulovat jakýkoli počítačový algoritmus. Neomezené jazyky jsou popsány neomezenými gramatikami, které nemají žádná omezení na pravidla produkce. Příkladem neomezeného jazyka je množina všech rekurzivně vyčíslitelných jazyků, která zahrnuje všechny vyčíslitelné jazyky.
Chomského hierarchie jazyků poskytuje systematický rámec pro klasifikaci formálních gramatik na základě jejich generativní síly. Začíná běžnými jazyky, které jsou nejméně výkonné, a postupuje k bezkontextovým, kontextovým a neomezeným jazykům, které jsou stále výkonnější. Tato hierarchie je základním konceptem v oblasti teorie výpočetní složitosti a má důležité důsledky pro studium formálních jazyků a automatů.
Další nedávné otázky a odpovědi týkající se Chomského hierarchie a kontextově citlivé jazyky:
- Co to znamená, že jeden jazyk je mocnější než druhý?
- Existují současné metody pro rozpoznání typu 0? Očekáváme, že to kvantové počítače umožní?
- Popište proces navrhování kontextově citlivé gramatiky pro jazyk sestávající z řetězců se stejným počtem jedniček, dvojek a trojek.
- Uveďte příklad kontextově citlivého jazyka a vysvětlete, jak jej lze rozpoznat pomocí kontextově citlivé gramatiky.
- Jak se jazyky typu 0, známé také jako rekurzivně vyčíslitelné jazyky, liší od jiných typů jazyků z hlediska výpočetní složitosti?
- Vysvětlete rozdíl mezi bezkontextovými jazyky a kontextově citlivými jazyky z hlediska pravidel, kterými se řídí jejich tvorba.