Formale Sprache

abstrakte Sprache, die mathematisch ausgedrückt und verwendet wird
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 2. September 2004 um 15:34 Uhr durch Marc van Woerkom (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Formale Sprachen sind mathematische Objekte, die besonders in der theoretischen Informatik, insbesondere bei Berechenbarkeits- und Komplexitätstheorie, sowie beim Compilerbau, Anwendung finden.

Definition

Eine formale Sprache   ist eine Menge von Wörtern über einem Alphabet  . Dabei ist ein Alphabet einfach eine endliche Menge von Objekten, die man wiederum Symbole oder Zeichen nennt. Ein Wort ist eine Folge bzw. Liste von Symbolen (Programmierer sagen String oder Zeichenkette dazu). Die Länge eines Wortes ist die Anzahl der Folgenglieder, z.B.  .

Zwei Wörter   und   kann man zu einem neuen Wort   aneinanderreihen, man bezeichnet diese Operation als Konkatenation und schreibt   oder kürzer  . Es gibt auch ein leeres Wort  , welches das neutrale Element bezüglich der Konkatenation darstellt, denn für jedes Wort   gilt  .

Man sieht, man betreibt in der theoretischen Informatik Algebra mit Wörtern und Zeichen, statt wie gewohnt mit Zahlen.

Die Konkatenation zweier Sprachen   und   ist  . Also alle Worte, die man bilden kann, indem ein Wort aus   und ein Wort aus   aneinandergereiht werden.

Man kann durch   induktiv die Potenz   von Sprachen für   mit   definieren, dabei wird   und   definiert (beachte: die Menge, die nur das leere Wort enthält, ist selbst nicht leer!)

Jetzt können wir die Menge aller endlichen Worte über dem Alphabet   hinschreiben:  , wobei   und wir hier die Symbole   aus   mit den Wörtern   der Länge 1 identifizieren.

Die   Operation wird auch als endlicher Abschluss bezeichnet, der Operator als Kleene Stern.

Die Menge dieser Wörter kann endlich oder unendlich sein. Man spricht dann auch von einer endlichen oder unendlichen Sprache.

Noam Chomsky hat eine Hierarchie von formalen Grammatiken aufgestellt, die verschiedene Typen von formalen Sprachen erzeugen. Diese ist heute unter dem Namen Chomsky-Hierarchie bekannt.

Während Grammatiken Wörter einer Sprache produzieren, werden Automaten verwendet, um Sprachen zu akzeptieren, das heisst zu entscheiden, ob ein Wort zu einer Grammatik passt. Siehe dazu auch Parser.

Beispiele

Wir betrachten das Alphabet  . Dann sind   und   zum Beispiel Wörter über diesem Alphabet.   ist kein Wort über diesem Alphabet, da  ,   und   nicht im Alphabet   vorkommen.

Die Verkettung der Wörter   und   (in dieser Reihenfolge) ergibt dann das Wort  . Die Verkettung von   mit dem "leeren Wort"   ergibt erneut  .

Eine formale Sprache über dem Alphabet   könnte zum Beispiel die Menge aller Wörter sein, die erst mit einer Folge von  's beginnt, dann mit einer Folge von  's weitergeht und zuletzt mit einer Folge von  's endet. Diese Sprache könnte formal als   beschrieben werden.

Menschliche Sprachen

Menschliche Sprachen basieren auf endlichen Alphabeten, deshalb sind sie als Teilmenge in der Menge aller Wörter über dem betreffenden Alphabet enthalten und somit auch formale Sprachen. Wissenschaftliche Fachrichtungen wie die Computerlinguistik beschäftigen sich mit der algorithmischen Bearbeitung von menschlichen Sprachen, zum Beispiel um maschinelle Übersetzung zu ermöglichen. Inwiefern dies effizient möglich ist, hängt von der bisher ungeklärten Einstufung der natürlichen Sprachen in die Chomsky-Hierarchie ab.