Formale Sprache
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.