Chomsky-hierarkiet av språk er et klassifiseringssystem som kategoriserer formelle grammatikker basert på deres generasjonskraft. Det ble foreslått av Noam Chomsky, en anerkjent lingvist og dataforsker, på 1950-tallet. Hierarkiet består av fire nivåer, som hver representerer en annen klasse av formelle språk. Disse nivåene er kjent som Type-3 (vanlig), Type-2 (Kontekstfri), Type-1 (Kontekstsensitiv) og Type-0 (Ubegrenset).
På det laveste nivået i hierarkiet har vi Type-3-språk, også kjent som vanlige språk. Disse språkene kan gjenkjennes av endelige automater, for eksempel deterministiske og ikke-deterministiske endelige automater. Vanlige språk er preget av regulære uttrykk og regulære grammatikker. Regulære uttrykk er algebraiske uttrykk som beskriver mønstre av strenger, mens vanlige grammatikker består av produksjonsregler som genererer strenger på et vanlig språk. Et eksempel på et regulært språk er settet av alle strenger som samsvarer med et gitt regulært uttrykk, for eksempel språket til alle binære strenger med et partall på 0-er.
Når vi beveger oss oppover i hierarkiet, møter vi Type-2-språk, også kjent som kontekstfrie språk. Disse språkene kan gjenkjennes av pushdown-automater, som er endelige automater utvidet med en stabel. Kontekstfrie språk er beskrevet av kontekstfrie grammatikker, som består av produksjonsregler som genererer strenger i et kontekstfritt språk. Kontekstfrie grammatikker har ikke-terminale symboler, terminalsymboler og produksjonsregler som spesifiserer hvordan ikke-terminaler kan erstattes av en sekvens av symboler. Et eksempel på et kontekstfritt språk er settet med alle velformede aritmetiske uttrykk, der parenteser er balansert og operatorer brukes riktig.
Det neste nivået i hierarkiet er Type-1-språk, også kjent som kontekstsensitive språk. Disse språkene kan gjenkjennes av lineært avgrensede automater, som er endelige automater med et bånd som kan bevege seg i begge retninger. Kontekstsensitive språk beskrives av kontekstsensitive grammatikker, som består av produksjonsregler som genererer strenger i et kontekstsensitivt språk. Kontekstsensitive grammatikker har den ekstra begrensningen at lengden på høyre side av en produksjonsregel ikke kan være kortere enn lengden på venstre side. Et eksempel på et kontekstsensitivt språk er settet av alle palindromer, der en streng leser det samme forover og bakover.
Til slutt, øverst i hierarkiet, har vi Type-0-språk, også kjent som Ubegrensede språk. Disse språkene kan gjenkjennes av Turing-maskiner, som er abstrakte beregningsenheter som er i stand til å simulere hvilken som helst datamaskinalgoritme. Ubegrensede språk er beskrevet av ubegrensede grammatikker, som ikke har noen begrensninger på produksjonsreglene. Et eksempel på et ubegrenset språk er settet med alle rekursivt tallbare språk, som inkluderer alle beregningsspråk.
Chomsky-hierarkiet av språk gir et systematisk rammeverk for å klassifisere formelle grammatikker basert på deres generasjonskraft. Det starter med vanlige språk, som er de minst kraftige, og går videre til kontekstfrie, kontekstsensitive og ubegrensede språk, som blir stadig kraftigere. Dette hierarkiet er et grunnleggende konsept innen beregningskompleksitetsteori og har viktige implikasjoner for studiet av formelle språk og automater.
Andre nyere spørsmål og svar vedr Chomsky-hierarki og kontekstfølsomme språk:
- Hva betyr det at ett språk er kraftigere enn et annet?
- Finnes det nåværende metoder for å gjenkjenne Type-0? Forventer vi at kvantedatamaskiner skal gjøre det mulig?
- Beskriv prosessen med å designe en kontekstsensitiv grammatikk for et språk som består av strenger med like mange enere, toere og treere.
- Gi et eksempel på et kontekstsensitivt språk og forklar hvordan det kan gjenkjennes av en kontekstsensitiv grammatikk.
- Hvordan skiller type 0-språk, også kjent som rekursivt enumerable språk, seg fra andre typer språk når det gjelder beregningsmessig kompleksitet?
- Forklar forskjellen mellom kontekstfrie språk og kontekstsensitive språk når det gjelder reglene som styrer dannelsen deres.