Chomsky-hierarchia

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 .

Nyelvtanok osztályozása

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.

0. típus - Korlátlan

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.

1. típus – környezetérzékeny

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.

2. típus – környezetfüggetlen

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

3. típus - normál

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.

Nyelvek osztályozása

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.

Jegyzetek

  1. Cook, Baze, 1990 , p. 258.264.
  2. Szerebryakov V. A., Galochkin M. P., Gonchar D. R., Furugyan M. G. A programozási nyelvek elmélete és megvalósítása. - M. : MZ-Press, 2006. - S. 21. - ISBN 5-94073-094-9 .
  3. Cook, Baze, 1990 , p. 268.

Irodalom