Formale Sprachen
Einführende Begriffe
Sei
Σ eine
endliche Menge von Symbolen, diese nennen wir auch
Alphabet.
Ein
Wort w der Länge
n ist dann eine beliebige
Teilmenge des
n-fachen
kartesischen Produkts Σn, also
w ist Wort genau dann wenn
w∈Σn.
Für den Spezialfall
n=0 definieren wir das
leere Wort ϵ.
Die
Menge aller Wörter wird auch
Kleenesche Hülle genannt und mit
Σ∗ bezeichnet, also
Σ∗=n∈N⋃Σn.
Definition
Eine
formale Sprache L ist eine beliebige
Teilmenge der
Kleeneschen Hülle ihres Alphabets
Σ:
L⊆Σ∗.
Formale Sprachen können leer,
endlich oder
unendlich sein, maximal können sie die gesamte
Kleenesche Hülle ihres Alphabetes umfassen.
Beispiele
- Programmiersprachen wie z.B. C sind formale Sprache. Die Wörter von C sind die jeweiligen Programme. Das Alphabet von C sind die Schlüsselwörter und Zeichen, die in der Definition von C festgelegt sind.
- Die natürlichen Zahlen in unärer Darstellung: Nun:={ε,1,11,111,1111,…}
- Die unäre Sprache über {a}, die nur Wörter quadratischer Länge enthält: {a(n2)∣n∈N}
- {anbn∣n∈N} für Σ={a,b}
- {anbncn∣n∈N} für Σ={a,b,c}
Operationen auf formalen Sprachen
Zwei Sprachen
L1 über dem Alphabet
Σ1 und
L2 über dem Alphabet
Σ2 sind ebenfalls Spracheen über dem Alphabet
Σ1∪Σ2, also
Mengen von Worten aus
(Σ1∪Σ2)∗. Deshalb sind auch
Sprachen über
Σ1∪Σ2.
Konkatenation
Die
Konkatenation zweier Sprachen
L1 und
L2 ist die Sprache der Wörter, die durch Hintereinanderschreibung (Konkatenation) je eines beliebigen Wortes
u aus
L1 und
v aus
L2 entsteht:
L1∘L2:={uv∣u∈L1,v∈L2}.
So sind zum Beispiel die Konkatenationen von verschiedenen Sprachen über dem Alphabet
Σ={a,b}:
- {a}∘{ab}={aab}
- {a,bb}∘{aa,b}={aaa,ab,bbaa,bbb}
- {abb,bab}∘{ε,aab,bb}={abb,bab,abbaab,babaab,abbbb,babbb}
Das
neutrale Element der Konkatenation ist die Sprache, welche nur das leere Wort enthält. So gilt für jede beliebige Sprache
L:
- L∘{ε}={ε}∘L=L
Das absorbierende Element der Konkatenation ist die leere Sprache, sodass für jede Sprache
L⊆Σ∗ gilt:
- L∘{}={}∘L={}
Die Konkatenation von Sprachen ist wie die Konkatenation von Wörtern assoziativ, aber nicht kommutativ. So ist zum Beispiel:
- ({a,bab}∘{a,b})∘{ab}={a,bab}∘({a,b}∘{ab})={aaab,abab,babaab,babbab}
aber:
- {a,bab}∘{a,b}={aa,ab,baba,babb}¬={aa,abab,ba,bbab}={a,b}∘{a,bab}
Da außerdem die
Potenzmenge der
Kleeneschen Hülle eines beliebigen Alphabets
Σ (die gleich der
Menge aller Sprachen ist, die aus
Σ gebildet werden können)
abgeschlossen bezüglich Konkatenation ist, bildet sie zusammen mit der Konkatenation als Operator und der Sprache des leeren Wortes als
neutrales Element einen Monoiden.
Potenz
Die
Potenz Ln einer Sprache ist die
n-fache Konkatenation dieser Sprache mit sich selbst. Sie ist rekursiv definiert mit:
- L0:={ε}
- Ln+1:=Ln∘L (für n∈N0)
So sind zum Beispiel:
- {aa,abab,bbab,ba}0={ε}
- {a,b}2={a,b}1∘{a,b}=({a,b}0∘{a,b})∘{a,b}=({ε}∘{a,b})∘{a,b}={aa,ab,ba,bb}
- {a}4={a}∘{a}∘{a}∘{a}={aaaa}
Im Speziellen gilt für jede einelementige,
formale Sprache L={w} (mit
w∈Σ∗) und jedes
n∈N0:
- Ln={w}n={wn}
Kleene-*-Abschluss und Kleene-+-Abschluss
Der
Kleene-*-Abschluss L∗ (auch
Iteration genannt) und der
Kleene-+-Abschluss L+ einer
formalen Sprache L sind definiert über die
Vereinigung der Potenzsprachen von
L:
- L∗:=i∈N0⋃Li
- L+:=i∈N⋃Li
Strukturen sind die Waffen der Mathematiker.
N. Bourbaki
Anbieterkеnnzeichnung: Mathеpеdιa von Тhοmas Stеιnfеld
• Dοrfplatz 25 • 17237 Blankеnsее
• Tel.: 01734332309 (Vodafone/D2) •
Email: cο@maτhepedιa.dе