Zur Themenübersicht     

Sprachklassen

Will ich Sprachen klassifizieren gibt es dazu grundsätzlich zwei Möglichkeiten:

1. Analysierende Methode:

Ich prüfe, ob mir vorliegende Worte zu einer Sprache gehören. Informatisch gedacht heißt dies, ich benötige einen Algorithmus oder einen Automaten oder irgendeine anderes Objekt, welches in der Lage ist, nach Eingabe eines Wortes festzustellen, ob dieses zu der Sprache gehört oder nicht.
So können wir zu jedem erkennenden Automaten eindeutig eine Sprache über dem Eingabealphabet dieser Sprache definieren:

Die spezielle Sprache von erkennenden Automaten

Definition:

Sei A ein erkennender Automat über dem Eingabealphabet E. Dann bezeichnen wir als Sprache L(A) dieses Automaten die Menge derjenigen Worte über E, die vom Automaten akzeptiert werden.

Ein Problem tut sich hier auf: ich kann so nur schon vorhandene Worte (oder Sätze) daraufhin prüfen, ob sie zu einer Sprache gehören. Zum Sprechen gehört aber auch, dass man in der Lage ist, Worte (bzw Sätze) zu erzeugen. !!!

2. Erzeugende Methode:

Ich benötige irgendein System, welches mir auf irgendeine Weise Worte dieser Sprache erzeugt. Hierzu gehören unter anderem die (formalen) Grammatiken. Wir werden aber noch andere solche Systeme kennen lernen. Genannt seien Syntaxdiagramme und die Sprachdefinition nach Backus-Nauer.

Im Folgenden beschäftigen wir uns mit der Klassifizierung von Sprachen nach dem erzeugenden System einer Grammatik.

Nach Chomsky werden die Grammatiken je nachdem welchen Einschränkungen die zugehörigen Ersetzungsregeln  unterliegen, in verschiedene Klassen unterteilt. Analog werden die zugehörigen Sprachen ebenso klassifitiert.

Sei G eine Grammatik, N die Menge der Nichtterminalsymbole, T die Menge der Terminalsymbole und l das leere Terminalsymbol.
Eine Grammatik heißt:

 

Anmerkungen: