Chomsky hierarki

Chomsky-hierarkiet  er en klassifikation af formelle sprog og formelle grammatikker , hvorefter de er opdelt i 4 typer i henhold til deres betingede kompleksitet. Foreslået af MIT professor , lingvist Noam Chomsky .

Klassifikation af grammatikker

Ifølge Chomsky kan formelle grammatikker opdeles i fire typer. For at tilskrive en grammatik til en bestemt type er det nødvendigt, at alle dens regler (produktioner) svarer til visse skemaer.

Type 0 - Ubegrænset

En grammatik med en sætningsstruktur G er en algebraisk struktur , en ordnet firdobbelt (V T , V N , P, S), hvor [1] :

Her  er sættet af alle strenge over alfabetet , og  er sættet af ikke-tomme strenge over alfabetet .

Type 0 ifølge Chomskys klassifikation omfatter ubegrænsede grammatikker  - grammatikker med sætningsstruktur , det vil sige alle formelle grammatikker uden undtagelse. Reglerne kan skrives som:

,

hvor  er enhver ikke-tom streng, der indeholder mindst et ikke-terminalt [2] symbol, og  er enhver streng af symboler fra alfabetet.

På grund af deres kompleksitet har sådanne grammatikker ingen praktisk anvendelse.

Type 1 - kontekstafhængig

Denne type inkluderer kontekstafhængige (KZ) grammatikker og ikke-forkortende grammatikker. For grammatik er alle regler [3] :

Disse klasser af grammatikker er ækvivalente. De kan bruges til analyse af tekster på naturlige sprog, men de bruges praktisk talt ikke i konstruktionen af ​​compilere på grund af deres kompleksitet. For kontekstafhængige grammatikker er udsagnet bevist: med en eller anden algoritme, i et begrænset antal trin, er det muligt at bestemme, om en kæde af terminalsymboler tilhører et givet sprog eller ej.

Type 2 - kontekstfri

Denne type inkluderer kontekstfri (CS) grammatikker . For grammatik er alle reglerne:

COP-grammatikker er meget brugt til at beskrive syntaksen for computersprog (se parsing ).

Type 3 - almindelig

Den tredje type omfatter almindelige grammatikker (automatisk) - den enkleste af de formelle grammatikker. De er kontekstfri, men med begrænset funktionalitet.

Alle almindelige grammatikker kan opdeles i to ækvivalente klasser, som for en grammatik af type III vil have regler af følgende form:

Almindelige grammatikker bruges til at beskrive de enkleste konstruktioner: identifikatorer , strenge , konstanter , samt assemblersprog , kommandoprocessorer osv.

Klassificering af sprog

Formelle sprog er klassificeret efter de typer grammatik, der definerer dem. Det samme sprog kan dog defineres af forskellige grammatikker, der tilhører forskellige typer. I dette tilfælde anses det for, at sproget tilhører den enkleste af dem. Så et sprog beskrevet af en grammatik med en sætningsstruktur, kontekstfølsomme og kontekstfrie grammatikker vil være kontekstfri.

Som med grammatik er et sprogs kompleksitet bestemt af dets type. De mest komplekse er sprog med en sætningsstruktur (dette inkluderer naturlige sprog), derefter - KZ-sprog, KS-sprog og de enkleste - almindelige sprog.

Noter

  1. Cook, Baze, 1990 , s. 258,264.
  2. Serebryakov V. A., Galochkin M. P., Gonchar D. R., Furugyan M. G. Teori og implementering af programmeringssprog. - M. : MZ-Press, 2006. - S. 21. - ISBN 5-94073-094-9 .
  3. Cook, Baze, 1990 , s. 268.

Litteratur