A Chomsky-hierarchia a formális nyelvek és formális nyelvtanok osztályozása , amely szerint feltételes összetettségük szerint 4 típusra oszthatók. A MIT professzora , Noam Chomsky nyelvész javasolta .
Chomsky szerint a formális nyelvtanok négy típusra oszthatók. Egy nyelvtan egy adott típushoz való hozzárendeléséhez szükséges, hogy minden szabálya (produkciója) megfeleljen bizonyos sémáknak.
A G kifejezésszerkezetű nyelvtan egy algebrai szerkezet , egy rendezett négyes (V T , V N , P, S), ahol [1] :
Itt látható az összes karakterlánc készlete az ábécé felett , és az ábécé feletti nem üres karakterláncok halmaza .
A 0-s típus a Chomsky-féle besorolás szerint magában foglalja a korlátlan nyelvtanokat - a kifejezésszerkezetű nyelvtanokat , vagyis kivétel nélkül az összes formális nyelvtant. A szabályok a következőképpen írhatók fel:
,ahol bármely nem üres karakterlánc, amely legalább egy nem terminális [2] szimbólumot tartalmaz, és az ábécé bármely szimbólumsora.
Bonyolultságuk miatt az ilyen nyelvtanoknak nincs gyakorlati alkalmazása.
Ebbe a típusba tartoznak a kontextusfüggő (KZ) nyelvtanok és a nem rövidítő nyelvtanok. A nyelvtan esetében minden szabály [3] :
Ezek a nyelvtani osztályok egyenértékűek. Használhatók természetes nyelvű szövegek elemzésénél, de fordítóprogramok felépítésében bonyolultságuk miatt gyakorlatilag nem. Kontextusfüggő nyelvtanoknál az állítás bizonyítást nyer: valamilyen algoritmussal véges számú lépésben meg lehet határozni, hogy terminális szimbólumok lánca egy adott nyelvhez tartozik-e vagy sem.
Ez a típus magában foglalja a környezetfüggetlen (CS) nyelvtanokat . A nyelvtan esetében az összes szabály a következő:
A COP nyelvtanokat széles körben használják a számítógépes nyelvek szintaxisának leírására (lásd az elemzést ).
A harmadik típusba a szabályos (automatikus) nyelvtanok tartoznak – a formális nyelvtanok közül a legegyszerűbb. Kontextusmentesek, de korlátozott funkcionalitással.
Minden reguláris nyelvtan két egyenértékű osztályra osztható, amelyek a III. típusú nyelvtan esetében a következő formájú szabályokkal rendelkeznek:
A reguláris nyelvtanokat a legegyszerűbb konstrukciók leírására használják: azonosítók , karakterláncok , konstansok , valamint assembly nyelvek , parancsfeldolgozók stb.
A formális nyelveket az őket meghatározó nyelvtan típusok szerint osztályozzák. Ugyanazt a nyelvet azonban különböző típusokhoz tartozó különböző nyelvtanok határozhatják meg. Ebben az esetben úgy tekintjük, hogy a nyelv a legegyszerűbbek közé tartozik. Tehát egy olyan nyelv, amelyet egy kifejezésszerkezettel, környezetérzékeny és kontextusmentes nyelvtannal ír le, kontextusmentes lesz.
A nyelvtanokhoz hasonlóan a nyelv összetettségét a típusa határozza meg. A legbonyolultabbak a kifejezésszerkezettel rendelkező nyelvek (ez magában foglalja a természetes nyelveket), majd a KZ-nyelvek, a KS-nyelvek és a legegyszerűbbek a reguláris nyelvek.
Formális nyelvek és formális nyelvtanok | |
---|---|
Általános fogalmak | |
Típus 0 | |
1. típus |
|
2. típus | |
3. típus |
|
elemzése |