Sprachen | Worte | Alphabete
anchored to 112.00_anchor_overview
Motivation
Wir möchten hier Alphabete und Worte definieren, weil wir grundsätzlich gerne ein formales Modell eines Computers erzeugen möchten –> siehe 112.02_deterministische_automaten Um dies tun zu können, müssen wir eine formale Struktur schaffen, um eine Sprache beschreiben zu können, mit welcher dann die Aufgaben ( also das was der Automat verarbeiten soll/muss) beschrieben werden können.
Alphabete | Worte
Wir beginnen folgend mit den Definitionen eines Alphabets und daraus konstruierbaren Worten:
Alphabete
[!Definition] Alphabete Ein Alphabet ist eine endliche Menge von Zeichen (symbolisch gedacht und eher abstrakt bedacht, kann also beliebig sein!) Die Elemente von heißen dabei dann die Symbole/Buchstaben –> müssen aber keine default Buchstaben sein!
Daraus kann man jetzt Verkettungen basteln, die dann einem Wort entsprechend:
Wörter
[!Tip] Wörter
Wir definieren ein Wort über einem Alphabet was eine endliche Folge von beliebigen Zeichen aus dem Alphabet ist. Die Länge eines Wortes ist dabei die Anzahl der Zeichen in W, beschrieben mit Wir beschreiben es dann mit was dann entsprechend Zeichen beschreibt mit den einzelnen Bestandteilen.Ein Wort können wir uns oft als Liste vorstellen, also eine Reihung/Sortierung der Buchstaben/Zeichen, die es hat!
Natürlich können wir Wörter auch konkatenieren. Beschrieben mit:
leeres Wort
[!Information] Leeres Wort Weiterhin brauchen wir ein Leeres Wort Dieses brauchen wir vor Allem dann, wenn wir ein System haben, bei welchem auch eine leere Eingabe nicht zum “Absturz” führen soll, also wir es so definieren, dass man mit diesem auch eine leere Sprache bzw. leere Wörter verarbeiten kann.
Beschrieben wird es mit Das leere Wort hat eine Länge von
[!Warning] es ist nicht equivalent zur leeren Menge, sondern ist eine leere Folge von Zeichen!
Beispiele
Ferner ein paar simple Beispiele zur Illustration: beschreibt etwas das Alphabet, was binäre Zahlen darstellen kann.
Es ermöglicht die Bildung von Ketten von 0,1:
wäre ein Alphabet für kleine lateinische Buchstaben
Teilworte
Wir haben soeben bereits gezeigt, wie man ein Wort aus verschiedenen Ketten von Symbolen beschreiben kann. Weiterhin haben wir noch betrachtet, wie man Wörter miteinander konkatenieren kann - um so etwa neue bilden zu können.
[!Definition] Teilwort Wir nennen ein Wort ein Teilwort eines anderen Wortes , wenn wir umschreiben können, sodass: Also wir können etwas davor und dahinter anbringen, damit dann zu ergänzt werden kann!
[!Tip] Präfixe Wenn hier jetzt , dann nennen wir das Präfix von (denn es ist der Anfang vom Wort ( und danach kommt ein Filler ))
[!Tip] Suffixe Wenn in der Betrachtung jetzt , dann ist das Suffix von . Auch hier, weil wir mit das Ende von beschreiben und davor irgendein Filler das Wort füllt.
Beispiele dafür:
- bildet ein Teilwort von
- kann ein Präfix von oder sein
- ist ein Suffix von oder
- ist ein Suffix und Präfix eines jeden Wortes - auch von sich selbst!
Sprachen
Wir haben nun das Werkzeug, um Alphabete und Worte zu generieren und beschreiben. Daraus können jetzt Mengen geschaffen werden, die dann ferner betrachtet eine Sprache bilden können ( wir können dann auch noch Automaten finden, die diese Sprachen beschreiben können ( für manche zumindest!) 112.02_deterministische_automaten)
Alphabeten-Mengen
Grundsätzlich möchten wir für Sprachen Mengen beschreiben, die eine gewisse Länge von Zeichen erlaubt / angibt .
[!Definition] Menge aller Wörter der Länge Möchten wir die Menge aller Wörter einer bestimmten Länge definieren / charakterisieren, dann benötigt es ein bestimmtes Alphabet für das es gilt. Ferner beschreiben wir dann für Wörter der Länge mit alle Wörter die Symbole aus dem Alphabet in Länge beschreiben kann.
[!Important]
Als Sonderfall beschreibt diese Menge nicht das leere Wort oder die leere Menge, sondern die Menge, die nur das leere Wort enthält!
Kleen’sche Hülle
Neben der Mengen für Wörter der Länge in Abhängigkeit eines Alphabets gibt es ferner noch eine allumfassende Menge:
[!Definition] Kleen’sche Hülle Mit der Kleen’schen Hülle für ein Alphabet beschreiben wir die Menge aller Wörter, die man mit beschreiben kann. ( Also alle Wörter mit beliebiger Länge etc!, die man mit den Symbolen bilden kann)
( Diese Menge schließt auch die leeren Wörter ein!)
[!Tip] Menge aller nicht leeren Worte: Hier werden also nur nicht leere Wörter beschrieben, weil rausfällt!
Sprache
Da wir mit dieser Menge einfach alles, was man mit einem Alphabet bilden könnte, abdecken, können wir Sprachen hinein-strukturieren.>
[!Definition] Sprache Wir beschreiben mit für ein Alphabet eine Sprache, was eine Menge von Wörtern über ist. Formal gilt hier
Beispiele
Wir können bestimmte Sprachen abhängig von ihrem Alphabet beschreiben
Dabei müssen wir nicht immer genau angeben, wie das möglich ist, sondern können durch Text vereinfachen!
-> damit lassen sich alle deutschen Wörter definieren / beschreiben! ( natürlich auch viel Müll dazwischen, aber das ist nicht relevant, daher haben wir die Einschränken, dass es im Duden ist!)
[!Important] Alphabet endlich, Sprache vielleicht nicht! Hier sehen wir, dass die Sprache unendlich viele Wörter beinhalten kann, dabei aber ein endliches Alphabet haben
Weiter Folgerungen hieraus:
[!Important] Sprachen können unendlich viele Wörter haben
[!Tip] Es gibt unendlich viele Sprachen über ein Alphabet ( auch wenn es endlich ist!)
Operationen auf Sprachen
Wir können ferner, wie bei anderen Mengen, diverse Operationen auf Sprachen ausführen / anwenden!
Vereinigung
Durchschnitt
Differenz
Komplement
Konkatenation
[!Important] Kleen’sche Hülle Diese Hülle ist insofern interessant, dass sie ist ( was alle Sprachen sind xd) aber vor Allem eine Konkatenation von den Wörtern, die sich in dieser Sprache befinden!
[!Important] Positive Hülle (einer Sprache) ähnlich der kleen’schen Hülle, nur ohne leeres Wort, da nicht gezählt wird
Further links
Sprachen bilden das fundamentale Konzept, was wir in weiteren Themen brauchen, um Automaten zu bezeichnen, ihre Limits zu finden etc. Siehe etwa: