Formale Sprachen
Script, Kapitel 4
• Grammatiken
– erzeugen Sprachen
– eingeführt von Chomsky zur Beschreibung natürlicher Sprachen
– bedeutend für die Syntaxdefinition von Programmiersprachen
(Compilerbau)
• Automaten
– akzeptieren Sprachen
– enge Beziehungen zu Grammatiken
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
117
Beispiel für eine Grammatik
<Satz> → <Subjekt><Prädikat><Objekt>
<Subjekt> → <Artikel><Attribut><Substantiv>
<Prädikat> → jagt
<Objekt> → <Artikel><Attribut><Substantiv>
<Artikel> → ε | der | die | das
<Attribut> → ε | <Adjektiv> | <Adjektiv><Attribut>
<Adjektiv> → kleine | bissige | große
<Substantiv> → Hund | Katze
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
118
Syntaxbaum für den Satz
der kleine bissige Hund jagt die große Katze
!"
#$! %
&! '()
0.."1-.!%
&.. '+(#
*+(, -..
0
(2
/+.(,
/3
&!&.3
4 '
3!56
7 *
"'
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
119
Definition Grammatik
Eine Grammatik ist ein 4-Tupel G = (V, Σ, P, S), wobei
• V ein Alphabet ist (Nichtterminalalphabet oder Alphabet der Variablen),
• Σ ein Alphabet ist (Terminalalphabet),
• V ∩ Σ = ∅ gilt,
• P eine endliche Teilmenge von ((V ∪ Σ)∗ \ Σ∗) × (V ∪ Σ)∗ ist
(Menge der Regeln),
• S ∈ V ist (die Startvariable oder Axiom).
Zur besseren Lesbarkeit werden wir u → v ∈ P für (u, v) ∈ P schreiben.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
120
Definitionen direkte Ableitung einer Grammatik
Sei G = (V, Σ, P, S) eine Grammatik und u, v ∈ (V ∪ Σ)∗ Wörter. Dann
gilt u =⇒G v (in Worten: u erzeugt bezüglich G direkt v) genau dann,
wenn
(i) u = γ1αγ2 mit γ1, γ2 ∈ (V ∪ Σ)∗,
(ii) v = γ1βγ2 und
(iii) α → β ∈ P ist.
Wenn keine Verwechslungsgefahr besteht, schreiben wir statt “=⇒G” einfach “=⇒”.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
121
Definitionen Ableitung und erzeugte Sprache
Sei G = (V, Σ, P, S) eine Grammatik und u, v ∈ (V ∪ Σ)∗ Wörter. Dann gilt
∗
u =⇒G v (in Worten: u erzeugt bezüglich G in endlich vielen Schritten v)
genau dann, wenn u = v gilt oder es ein n ∈ N und Wörter w0, w1, . . . , wn
gibt, so dass
u = w0 =⇒G w1 =⇒G w2 =⇒G · · · =⇒G wn = v
gilt.
Sei G = (V, Σ, P, S) eine Grammatik. Die von G erzeugte Sprache L(G)
wird definiert als
∗
L(G) = {w ∈ Σ∗ | S =⇒G w}.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
122
Beispiel einer Grammatik
Es sei
G = ({S}, {a, b}, {S → aSb, S → ab}, S)
eine Grammatik, dann gilt
L(G) = {anbn | n ≥ 1}.
Eine Ableitung für das Wort a4b4 sieht dann so aus:
S =⇒ aSb =⇒ aaSbb =⇒ aaaSbbb =⇒ aaaabbbb.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
123
Weiteres Beispiel einer Grammatik
Es sei
G = ({S}, {a}, {S → aaS, S → a}, S)
eine Grammatik, dann gilt
L(G) = {a2n+1 | n ≥ 0}.
Eine Ableitung für das Wort a7 sieht dann so aus:
S =⇒ aaS =⇒ aaaaS =⇒ aaaaaaS =⇒ aaaaaaa.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
124
Weiteres Beispiel einer Grammatik
Es sei
G = ({S}, {a, b}, {S → aS, S → bS, S → a, S → b}, S)
eine Grammatik, dann gilt
L(G) = {a, b}+ = {w ∈ {a, b}∗ | w 6= ε}.
Eine Ableitung für das Wort aaba sieht dann so aus:
S =⇒ aS =⇒ aaS =⇒ aabS =⇒ aaba.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
125
Komplexeres Beispiel einer Grammatik
Es sei die Grammatik G = ({S, B, C}, {a, b, c}, P, S) mit
P = {S → aSBC, S → aBC, CB → BC, aB → ab,
bB → bb, bC → bc, cC → cc}
gegeben. Wir können zum Beispiel die Ableitung
S =⇒ aSBC =⇒ aaSBCBC =⇒ aaaBCBCBC
=⇒ aaaBBCCBC =⇒ aaaBBCBCC =⇒ aaaBBBCCC
=⇒ aaabBBCCC =⇒ aaabbBCCC =⇒ aaabbbCCC
=⇒ aaabbbcCC =⇒ aaabbbccC =⇒ aaabbbccc
aufstellen, also gehört das Wort aaabbbccc = a3b3c3 zur erzeugten Sprache
L(G), es gilt also a3b3c3 ∈ L(G).
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
126
Komplexeres Beispiel einer Grammatik – Erzeugte Sprache Teil 1
Vermutung: L(G) = {anbncn | n ≥ 1}.
Zunächst wird L(G) ⊇ {anbncn | n ≥ 1} gezeigt,
∗
d.h. S =⇒ anbncn für jedes n ≥ 1.
• Wende (n − 1)-mal Regel S → aSBC und dann einmal S → aBC an,
∗
d.h.: S =⇒ an(BC)n.
• Solange wie möglich wende CB → BC an,
∗
d.h.: an(BC)n =⇒ anB nC n.
• Wende einmal aB → ab und (n − 1)-mal bB → bb an,
∗
d.h.: anB nC n =⇒ anbnC n.
• Wende einmal bC → bc und (n − 1)-mal cC → cc an,
∗
d.h.: anbnC n =⇒ anbncn.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
127
Komplexeres Beispiel einer Grammatik – Erzeugte Sprache Teil 2
Schwieriger zu zeigen ist die Behauptung L(G) ⊆ {anbncn | n ≥ 1}.
• Für jedes erzeugbare Wort α gilt: |α|a = |α|b + |α|B = |α|c + |α|C .
• In jedem erzeugbaren Wort stehen die a’s am Anfang.
• Ein Symbol B kann nur dann in ein b umgewandelt werden, wenn
unmittelbar links vor ihm ein a oder ein b steht, d.h. kein c steht vor
einem b.
• Mathematisch exakter Beweis erfolgt durch vollständige Induktion.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
128
Chomsky-Hierarchie
Definition: Eine Grammatik G = (V, Σ, P, S) heißt vom
• Typ 0, wenn sie keinen Beschränkungen unterliegt,
• Typ 1 oder kontextabhängig, falls für jede Regel α → β gilt: |α| ≤ |β|,
mit der Ausnahme S → ε, falls S nicht auf der rechten Seite einer Regel
vorkommt.
• Typ 2 oder kontextfrei, wenn jede Regel von der Form A → β mit A ∈ V
und β ∈ (V ∪ Σ)∗ ist.
• Typ 3 oder regulär, wenn jede Regel von der Form A → wB oder A → w
mit A, B ∈ V und w ∈ Σ∗ ist.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
129
Chomsky-Hierarchie – Fortsetzung
Definition: Eine Sprache L ⊆ Σ∗ heißt vom Typ 0 (Typ 1, Typ 2, Typ 3),
falls es eine Grammatik G = (V, Σ, P, S) vom Typ 0 (Typ 1, Typ 2, Typ 3)
gibt, so dass L = L(G) gilt.
Notation: Typ i: Familie der Sprachen vom Typ i ∈ {0, 1, 2, 3}
Satz (Chomsky-Hierarchie). Es gilt:
Typ 3 ( Typ 2 ( Typ 1 ( Typ 0.
Der Beweis des Satzes wird in den folgenden Kapiteln erbracht.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
130
Typ-0-Grammatiken und Turingmaschinen
Satz
Eine Sprache ist genau dann eine Typ-0-Sprache,
wenn sie von einer NTM akzeptiert werden kann,
d.h. wenn sie rekursiv aufzählbar ist.
Beweisidee
• Ableitung einer Grammatik wird in umgekehrter Reihenfolge durch eine
NTM simuliert.
• Konfigurationenfolge eines akzeptierenden Laufs einer NTM wird in
umgekehrter Reihenfolge durch eine Grammatik erzeugt.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
131
Simulation einer Grammatik durch eine NTM
• gegeben: Grammatik G = (V, Σ, P, S)
• Konstruiere NTM M = (Z, Σ, V ∪ Σ ∪ {}, δ, z0, , {q})
• Arbeitsweise von M in einer Phase:
Rate eine Regel α → β und ersetze ein Vorkommen von β durch α,
d.h. Konfigurationsänderung: z0w1βw2 `∗ z0w1αw2
• M akzeptiert, wenn nur noch S auf dem Band steht.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
132
Linear beschränkte Automaten
Definition Eine nichtdeterministische Turingmaschine M heißt linear beschränkter Automat (LBA), wenn bei jedem Lauf von M nur die Speicherzellen der Eingabe benutzt werden.
Offenes Problem (LBA-Problem):
Sind deterministische LBA so mächtig wie nichtdeterministische LBA?
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
133
Typ-1-Grammatiken und LBA
Satz
Eine Sprache ist genau dann eine Typ-1-Sprache,
wenn sie von einem linear beschränkten Automaten
akzeptiert werden kann.
Beweisidee
• Gleiche Konstruktionen wie für Typ-0-Grammatiken und NTM.
• Nichtverkürzende Regeln erlauben den beschränkten Platzbedarf.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
134
Das Wortproblem
Definition (Wortproblem)
Gegeben: Grammatik G = (V, Σ, P, S) vom Typ i, i ∈ {0, 1, 2, 3},
und Wort w ∈ Σ∗,
Frage: Gilt w ∈ L(G)?
Folgerung Das Wortproblem für Typ-0-Grammatiken ist semi-entscheidbar,
aber nicht entscheidbar.
Satz Das Wortproblem für Typ-1-Grammatiken ist entscheidbar.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
135
Weitere Entscheidungsprobleme
Leerheitsproblem:
Gegeben: Grammatik G.
Frage: Gilt L(G) = ∅?
Schnittproblem:
Gegeben: Zwei Grammatiken G1, G2.
Frage: Gilt L(G1) ∩ L(G2) = ∅?
Endlichkeitsproblem:
Gegeben: Grammatik G.
Frage: Ist L(G) endlich?
Äquivalenzproblem:
Gegeben: Zwei Grammatiken G1, G2.
Frage: Gilt L(G1) = L(G2)?
Satz: Das Leerheitsproblem, das Endlichkeitsproblem, das Äquivalenzproblem und das Schnittproblem sind unentscheidbar für Typ-1-Grammatiken.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
136
Reguläre Sprachen
• Reguläre Sprachen (Typ-3-Sprachen)
– haben große Bedeutung in Textverarbeitung und Programmierung
(z.B. lexikalische Analyse)
– besitzen für viele Entscheidungsprobleme effiziente Algorithmen
• Äquivalenz zu endlichen Automaten
• Äquivalenz zu regulären Ausdrücken
• Grenzen der regulären Sprachen (Pumping-Lemma)
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
137
Endliche Automaten
Definition
Ein deterministischer endlicher Automat (DEA) A ist ein 5-Tupel
A = (Z, Σ, δ, z0, E). Dabei sind
• Z das Zustandsalphabet,
• Σ das Eingabealphabet mit Z ∩ Σ = ∅,
• δ : Z × Σ → Z die Zustandsüberführungsfunktion,
• z0 ∈ Z der Anfangszustand und
• E ⊆ Z die Menge der Endzustände.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
138
Interpretation der Arbeitsweise des Endlichen Automaten
.................................................................................................................................................................................................................................................................................................................................................................................
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
..
.............................................................................................................................................................................................................................................................................................................................................................................
...........
.....
...
...
...
....
..
...
...
...
.............................................
...
..
...
...
...
...
...
...
...
...
...
...
...
..
..........................................
a1
a2
...
ai ai+1
z
...
an
.................................................................................................................................................................................................................................................................................................................................................................................
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
..
............................................................................................................................................................................................................................................................................................................................................................................
...........
.....
...
...
....
..
...
...
...
...
.............................................
...
..
...
...
...
...
...
...
...
...
...
...
...
..
..........................................
a1
=⇒
für δ(z, ai ) = z 0
a2
...
ai ai+1
...
an
z0
“Turingmaschine, die die Eingabe einmal von links nach rechts liest”
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
139
Akzeptierte Sprache des Endlichen Automaten
Definition
Sei A ein deterministischer endlicher Automat A = (Z, Σ, δ, z0, E); die
erweiterte Zustandsüberführungsfunktion δ̂ : Z × Σ∗ → Z wird definiert
durch
(i) δ̂(z, ε) = z
für alle z ∈ Z,
(ii) δ̂(z, wa) = δ(δ̂(z, w), a)
für alle z ∈ Z, a ∈ Σ, w ∈ Σ∗.
Definition
Für einen DEA A = (Z, Σ, δ, z0, E) ist die von ihm akzeptierte Sprache
T (A) definiert durch
T (A) = {w ∈ Σ∗ | δ̂(z0, w) ∈ E}.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
140
Überführungsgraphen
!
" $#"% &' )(*+-,./0
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
1
/
141
Endliche Automaten – Beispiel
Es sei A der deterministische endliche Automat
A = ({z0, z1, z2, z3}, {0, 1}, δ, z0, {z2, z3}),
mit der Überführungsfunktion δ, gegeben durch folgende Tabelle.
δ z0 z1 z2 z3
0 z0 z3 z3 z0
1 z1 z2 z2 z1
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
142
DEA – Beispiel (Fortsetzung)
Der dazugehörige Graph lautet
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
143
Nichtdeterministische endliche Automaten
Definition
Ein nichtdeterministischer endlicher Automat (NEA) A ist ein 5-Tupel
A = (Z, Σ, δ, z0, E). Dabei sind
• Z das Zustandsalphabet,
• Σ das Eingabealphabet mit Z ∩ Σ = ∅,
• δ : Z × Σ → 2Z die Zustandsüberführungsfunktion,
• z0 ∈ Z der Anfangszustand und
• E ⊆ Z die Menge der Endzustände.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
144
Akzeptierte Sprache eines NEA
Definition Sei A ein NEA mit A = (Z, Σ, δ, z0, E); die erweiterte Zustandsfunktion δ̂ : Z × Σ∗ → 2Z wird definiert durch
(i) δ̂(z, ε) = {z}
(ii) δ̂(z, wa) =
für alle z ∈ Z,
S
δ(z 0, a)
das heißt
z 0 ∈δ̂(z,w)
00
= {z ∈ Z | ∃z 0 ∈ Z mit z 0 ∈ δ̂(z, w) und z 00 ∈ δ(z 0, a)}
für z ∈ Z, a ∈ Σ, w ∈ Σ∗.
Definition Für einen NEA A = (Z, Σ, δ, z0, E) sei die von ihm akzeptierte
Sprache T (A) definiert durch
T (A) = {w ∈ Σ∗ | δ̂(z0, w) ∩ E 6= ∅}.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
145
Beispiel eines NEA
Beispiel Sei A = ({z0, z1, z2}, {0, 1}, δ, z0, {z2}) ein NEA, wobei δ durch
die folgende Tabelle gegeben ist:
δ
z0
z 1 z2
0 {z0} {z2} ∅
1 {z0, z1} {z2} ∅
Der dazugehörige Graph ist:
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
146
Beispiel eines NEA – Fortsetzung
δ̂(z0, 0)
δ̂(z0, 1)
δ̂(z0, 01)
δ̂(z0, 11)
δ̂(z0, 001)
δ̂(z0, 010)
=
=
=
=
=
=
{z0}
{z0, z1}
{z0, z1}
{z0, z1, z2}
{z0, z1}
{z0, z2}
⇒
⇒
⇒
⇒
⇒
⇒
0∈
/ T (A)
1∈
/ T (A)
01 ∈
/ T (A)
11 ∈ T (A)
001 ∈
/ T (A)
010 ∈ T (A)
Die akzeptierte Sprache T (A) ist die Menge aller Wörter über {0, 1}, deren
vorletztes Symbol eine 1 ist, d. h.
T (A) = {w ∈ {0, 1}∗ | w = u1x mit u ∈ {0, 1}∗, x ∈ {0, 1}}.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
147
Äquivalenz von NEA und DEA
Satz
Jede von einem NEA akzeptierte Sprache ist auch von einem DEA akzeptierbar.
Beweis (Potenzmengen-Konstruktion)
Aus NEA A = (Z, Σ, δ, z0, E) konstruiere DEA A0 = (Z 0, Σ, δ 0, z00 , E 0):
Z0
z00
E0
δ 0(z 0, a)
= 2Z ,
= {z0},
= {z 0 ∈ Z 0 | z 0 ∩ E 6= ∅},
S
δ(z, a) für alle z 0 ∈ Z 0 und a ∈ Σ.
=
z∈z 0
Dann gilt
δˆ0({z0}, w) = δ̂(z0, w) für alle w ∈ Σ∗, d.h. T (A) = T (A0).
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
148
Beispiel NEA −→ DEA
Wir betrachten den NEA von Folie 146.
Wir konstruieren den äquivalenten DEA A0 = (Z 0, {0, 1}, δ 0, {z0}, E 0).
Bemerkung: Man braucht nur die Teilmengen von Z zu betrachten, die
von {z0} erreichbar sind (sparsame Potenzmengenkonstruktion).
δ0
{z0}
{z0, z1} {z0, z2} {z0, z1, z2}
0
{z0}
{z0, z2}
{z0}
{z0, z2}
1 {z0, z1} {z0, z1, z2} {z0, z1} {z0, z1, z2}
Z 0 = {{z0}, {z0, z1}, {z0, z2}, {z0, z1, z2}}
E 0 = {{z0, z2}, {z0, z1, z2}}
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
149
Beispiel NEA −→ DEA – Fortsetzung
Zur besseren Lesbarkeit bezeichnen wir die Zustände um:
{z0} =: q0, {z0, z1} =: q1, {z0, z2} =: q2 und {z0, z1, z2} =: q3.
A0 = ({q0, q1, q2, q3}, {0, 1}, δ 0, q0, {q2, q3})
mit
δ 0 q0 q1 q2 q3
0 q0 q2 q0 q2
1 q1 q3 q1 q3
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
150
Endliche Automaten und reguläre Grammatiken
Satz
Sei A ein NEA. Dann ist die von A akzeptierte Sprache T (A) regulär.
Beweis.
Aus NEA A = (Z, Σ, δ, z0, E) konstruiere Typ-3-Grammatik G =
(V, Σ, P, S)
mit V = Z, S = z0 und
P = {z1 → az2 | z2 ∈ δ(z1, a))} ∪ {z1 → ε | z1 ∈ E}.
∗
Es gilt z1 =⇒G wz2 genau dann, wenn z2 ∈ δ̂(z1, w).
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
151
NEA → Grammatik – Beispiel
Sei A = ({z0, z1, z2, z3}, {a, b}, δ, z0, {z3}) der DEA mit der Überführungsfunktion δ:
δ z 0 z1 z2 z3
a z 1 z1 z3 z3
b z 0 z2 z0 z3
Wir konstruieren jetzt die äquivalente Typ-3-Grammatik G = (V, Σ, P, S):
V
Σ
S
P
=
=
=
=
{z0, z1, z2, z3},
{a, b},
z0 ,
{z0 → az1, z0 → bz0, z1 → az1, z1 → bz2}
∪ {z2 → az3, z2 → bz0, z3 → az3, z3 → bz3}
∪ {z3 → ε}.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
152
Eine Normalform für reguläre Grammatiken
Lemma
Für jede reguläre Sprache L gibt es eine Typ-3-Grammatik G = (V, Σ, P, S)
mit L(G) = L, deren Regeln der folgenden Form sind:
A → aB, A, B ∈ V, a ∈ Σ oder A → ε, A ∈ V
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
153
Reguläre Grammatik −→ NEA
Satz
Sei G eine reguläre Grammatik; dann existiert ein NEA A mit T (A) = L(G).
Beweis
Für eine reguläre Grammatik G = (V, Σ, P, S) in Normalform konstruieren
wir den NEA A = (Z, Σ, δ, z0, E) wie folgt:
Z = V,
z0 = S,
E = {A ∈ V | A → ε ∈ P }
δ(A, a) = {B ∈ V | A → aB ∈ P } für A ∈ V und a ∈ Σ.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
154
Reguläre Ausdrücke
Definition (Reguläre Ausdrücke)
Sei Σ ein Alphabet, dann gilt:
(i) ∅ ist ein regulärer Ausdruck über Σ.
(ii) ε ist ein regulärer Ausdruck über Σ.
(iii) Für jedes a ∈ Σ ist a ein regulärer Ausdruck über Σ.
(iv) Wenn α und β reguläre Ausdrücke über Σ sind, so sind auch αβ, (α | β)
und (α)∗ reguläre Ausdrücke über Σ.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
155
Sprache eines regulären Ausdrucks
Definition (Sprache eines regulären Ausdrucks)
Sei Σ ein Alphabet und γ ein regulärer Ausdruck über Σ, dann wird die von
γ beschriebene Sprache L(γ) ⊆ Σ∗ wie folgt definiert.
(i) Für γ = ∅ gilt L(γ) = ∅.
(ii) Für γ = ε gilt L(γ) = {ε}.
(iii) Für γ = a mit a ∈ Σ gilt L(γ) = {a}.
(iv) Für γ = αβ gilt L(γ) = L(α) · L(β).
(v) Für γ = (α | β) gilt L(γ) = L(α) ∪ L(β).
(vi) Für γ = (α)∗ gilt L(γ) = (L(α))∗.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
156
Beispiel eines regulären Ausdrucks
L((0 | (0 | 1)∗00)) = L(0) ∪ L((0 | 1)∗00))
= L(0) ∪ (L((0 | 1)∗0)) · L(0))
= L(0) ∪ ((L((0 | 1)∗)) · L(0)) · L(0))
= L(0) ∪ (((L((0 | 1)))∗ · L(0)) · L(0))
= L(0) ∪ (((L(0) ∪ L(1))∗ · L(0)) · L(0))
= {0} ∪ ((({0} ∪ {1})∗ · {0}) · {0})
= {0} ∪ (({0, 1}∗ · {0}) · {0})
= {0} ∪ ({0, 1}∗ · {00}),
Das heißt, die vom Ausdruck (0 | (0 | 1)∗00) beschriebene Sprache ist die
Menge aller Wörter über dem Alphabet {0, 1}, die gleich 0 sind oder auf 00
enden.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
157
Äquivalenz regulärer Ausdrücke
Definition
Zwei reguläre Ausdrücke β und γ heißen äquivalent, in Zeichen β ≡ γ,
wenn L(β) = L(γ) gilt.
Beispiel:
((a | b))∗ ≡ ((a | b)(a | b))∗((a | b) | ε)
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
158
Rechenregeln für reguläre Ausdrücke
(A | (B | C)) ≡ ((A | B) | C)
A(B | C) ≡ (AB | AC)
(B | C)A ≡ (BA | CA)
(A | B) ≡ (B | A)
(A | A) ≡ A
(A | ∅) ≡ (∅ | A) ≡ A
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
A∅ ≡ ∅A ≡ ∅
Aε ≡ εA ≡ A
((A)∗)∗ ≡ (A)∗
(∅)∗ ≡ ε
((A | ε))∗ ≡ (A)∗
(A)∗ ≡ (ε | A)A∗ ≡ ((ε | A))∗A
159
Bemerkung zu regulären Ausdrücken
1. Wir vereinbaren, dass wir Klammern, die nicht notwendigerweise gebraucht werden, weglassen können. Zum Beispiel können wir statt
(α | (β | γ)) auch (α | β | γ) schreiben. Wir schreiben auch L(α | β)
statt L((α | β)) sowie a∗ statt (a)∗ für a ∈ Σ.
2. Wir benutzen die abkürzende Schreibweise αn für αα
. . . α}.
| {z
n-mal
3. Wir benutzen die abkürzende Schreibweise α+ für α∗α.
4. In der Literatur findet man oft auch abweichende Schreibweisen der
regulären Ausdrücke. Zum Beispiel findet man für (α | β) auch (α + β)
oder auch (α ∪ β). Auch wird natürlich oft α · β für αβ zugelassen.
5. Oft wird in der Literatur zwischen regulärem Ausdruck und beschriebener
Sprache nicht unterschieden, das heißt, man identifiziert einen regulären
Ausdruck mit der beschriebenen Sprache.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
160
Weitere Beispiele regulärer Ausdrücke
(a | b)∗ beschreibt die Menge aller Wörter über dem Alphabet {a, b}.
(a | b)+ beschreibt die Menge aller Wörter über dem Alphabet {a, b}, die
nicht dem leeren Wort entsprechen.
(a | b)∗aba(a | b)∗ beschreibt die Menge aller Wörter über dem Alphabet
{a, b}, die das Teilwort aba haben.
(a | b)∗a(a | b)2 beschreibt die Menge aller Wörter über dem Alphabet
{a, b}, deren drittletztes Symbol ein a ist.
((a | b)(a | b))∗ beschreibt die Menge aller Wörter über dem Alphabet
{a, b}, deren Länge gerade ist.
(b | ε)(ab)∗(a | ε) beschreibt die Menge aller Wörter über dem Alphabet
{a, b}, die nicht das Teilwort aa und nicht das Teilwort bb enthalten.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
161
Satz von Kleene
Satz (Kleene)
Die Menge der durch reguläre Ausdrücke beschreibbaren Sprachen
ist genau die Menge der regulären Sprachen.
Beweis (Konstruktionen)
• regulärer Ausdruck → NEA: Induktion über Aufbau der Ausdrücke
• NEA → regulärer Ausdruck: Lösung von Gleichungssystemen
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
162
Regulärer Ausdruck → NEA
1. Automaten für die Ausdrücke ∅, ε und a:
2. Seien Aα bzw. Aβ NEA mit T (Aα) = L(α) bzw. T (Aβ ) = L(β)
Konstruiere NEA für αβ, (α | β) und α∗
(formale Konstruktion: siehe Skript)
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
163
Regulärer Ausdruck → NEA – Fortsetzung
(a) Automat für αβ:
• Verschmelze Endzustände von Aα mit Startzustand von Aβ . (“Reihenschaltung”)
• neuer Startzustand: Startzustand von Aα
• neue Endzustände: Endzustände von Aβ
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
164
Regulärer Ausdruck → NEA – Fortsetzung
(b) Automat für (α | β):
• Neuer Startzustand mit Kanten zu den Nachfolgern der Startzustände
von Aα und Aβ (“Parallelschaltung”).
• neue Endzustände: Endzustände von Aα und Aβ
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
165
Regulärer Ausdruck → NEA – Fortsetzung
(c) Automat für (α)∗:
• Füge für jede Kante zu einem Endzustand eine gleiche Kante zum
Startzustand ein.
• neuer Endzustand: Startzustand von Aα
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
166
NEA → Regulärer Ausdruck
• Aufstellen eines “linearen Gleichungssystems” für einen NEA
• Auflösen des linearen Gleichungssystems → regulärer Ausdruck
• (Wegen der besseren Lesbarkeit geben wir nicht die Ausdrücke, sondern
ihre Sprachen an.)
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
167
Gleichungssystem zu einem NEA
NEA A = (Z, Σ, δ, z0, E)
Für z ∈ Z sei Az = (Z, Σ, δ, z, E) und Lz = T (Az ).
Für alle z ∈ Z gilt:
Lz =
[
[
a · Lz0 ∪ Ez
z 0 ∈Z a:z 0 ∈δ(z,a)
(
∅,
mit Ez =
{ε},
falls z ∈
/E
sonst
Lineares Gleichungssystem mit den Variablen Lz , z ∈ Z.
Falls eine eindeutige Lösung existiert, so ist durch Lz0 der gesuchte reguläre
Ausdruck bekannt.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
168
Gleichungssystem zu einem NEA-Beispiel
Lz0 = {a} · Lz0 ∪ {b} · Lz1 ∪ {ε}
Lz1 = {b} · Lz1 ∪ {a} · Lz2 ∪ {ε}
Lz2 = {a} · Lz0 ∪ {b} · Lz3 ∪ {ε}
Lz3 = {a, b} · Lz3
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
169
Auflösen linearer Gleichungssysteme
Lemma. Für B, C ⊆ Σ∗ mit ε 6∈ B gilt:
Die Gleichung L = B · L ∪ C besitzt die einzige Lösung L = B ∗ · C.
Auflösung von Gleichungssytemen durch sukzessive Eliminierung der Variablen Lz unter Nutzung des Lemmas
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
170
Auflösen linearer Gleichungssysteme - Beispiel
Für das Gleichungssystem auf Folie 169 ergibt sich
Lz3 = {a, b} · Lz3 → Lz3 = {a, b}∗ · ∅ = ∅
Lz2 = {a} · Lz0 ∪ {b} · Lz3 ∪ {ε} → Lz2 = {a} · Lz0 ∪ {ε}
Lz1 = {b} · Lz1 ∪ {a} · Lz2 ∪ {ε} = {b} · Lz1 ∪ {aa} · Lz0 ∪ {a, ε}
→ Lz1 = {b}∗{aa} · Lz0 ∪ {b}∗{a, ε}
Lz0 = {a}·Lz0 ∪{b}·Lz1 ∪{ε} = {a}·Lz0 ∪{b}+{aa}·Lz0 ∪{b}+{a, ε}∪{ε}
→ Lz0 = ({a} ∪ {b}+{aa})∗ · ({b}+{a, ε} ∪ {ε})
Regulärer Ausdruck: (a | b+aa)∗(b+(a | ε) | ε)
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
171
Das Pumping Lemma
Satz (Pumping Lemma)
Sei L eine reguläre Sprache.
Dann gibt es eine Konstante k ∈ N, so dass
für alle Wörter z ∈ L mit |z| ≥ k
eine Zerlegung z = uvw existiert, so dass gilt:
(i) |uv| ≤ k und |v| ≥ 1,
(ii) für alle i ∈ N gilt uv iw ∈ L.
Bedeutung:
Wichtiges Hilfsmittel um zu beweisen, dass eine Sprache nicht regulär ist
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
172
Pumping Lemma – Beweis
• Reguläre Sprache L werde durch DEA A = (Z, Σ, δ, z0, E) mit k
Zuständen akzeptiert.
• Betrachte Wort x ∈ L mit |x| ≥ k. Es gilt δ̂(z0, x) = q für ein q ∈ E.
• Nach Einlesen der ersten k Buchstaben von x wurden k + 1 Zustände
angenommen.
Nach dem Schubfachprinzip müssen 2 dieser Zustände gleich sein, d.h.
es gibt eine Zerlegung x = uvw mit |uv| ≤ k, |v| > 0, δ̂(z0, u) =
δ̂(z0, uv) = zu, δ̂(z0, uvw) = q.
• Nach Definition von δ̂ gilt:
δ̂(zu, v) = zu, d.h. δ̂(zu, v i) = zu für alle i ≥ 0
• Es folgt δ̂(z0, uv iw) = δ̂(δ̂(z0, uv i), w) = δ̂(zu, w) = q, d.h. uv iw ∈ L.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
173
Anwendung des Pumping Lemmas
Erfüllt eine Sprache nicht die Folgerung des Pumping-Lemmas, so kann sie
auch nicht regulär sein.
Um zu beweisen, dass eine Sprache L nicht die Folgerung des PumpingLemmas erfüllt, muss man Folgendes zeigen:
Für jede natürliche Zahl k
existiert ein Wort z mit |z| ≥ k,
so dass für jede Zerlegung z = uvw mit |uv| ≤ k und |v| ≥ 1
ein i ∈ N existiert, so dass uv iw ∈
/ L gilt.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
174
Anwendungen des Pumping Lemmas - Beispiel
Satz: Die Menge PAL der Palindrome über {a, b} ist nicht regulär.
Beweis
Wir zeigen, dass PAL nicht die Behauptung des Pumping-Lemmas erfüllt.
• Sei k eine beliebige natürliche Zahl.
• Wähle z = ak bak . (Offensichtlich gilt |z| ≥ k und z ∈ PAL).
• Für jede Zerlegung z = uvw mit |uv| ≤ k und |v| ≥ 1 gilt:
u = ar , v = as, w = ak−r−sbak mit r + s ≤ k und s ≥ 1.
• Wähle i = 2. Es gilt uv 2w = ar a2sak−r−sbak = ak+sbak ∈
/ PAL.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
175
Anwendungen des Pumping Lemmas
Mit Hilfe des Pumping Lemmas kann man auch die Nichtregularität der
Sprachen
n2
L = {a
2n
L = {a
| n ≥ 1},
| n ≥ 1},
L = {ap | p Primzahl},
L = {anbn | n ≥ 1},
L = {ww | w ∈ {a, b}∗},
L = Menge der regulären Ausdrücke über Σ
und vieler anderer zeigen.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
176
Abschlusseigenschaften regulärer Sprachen
Satz Sind A und B reguläre Sprachen über Σ, dann sind auch
(i) A ∪ B,
(ii) A ∩ B,
(iii) A · B,
(iv) Σ∗ \ A und
(v) A∗
reguläre Sprachen.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
177
Wortproblem und andere Entscheidungsprobleme
Satz Das Wortproblem für ein Wort der Länge n und einen DEA ist mit
einem Zeitaufwand von O(n) entscheidbar.
Satz Das Wortproblem für ein Wort der Länge n und einen NEA mit k
Transitionen ist mit einem Zeitaufwand von O(n · k) entscheidbar.
Satz Das Leerheitsproblem, das Endlichkeitsproblem, das Schnittproblem
für NEA sind in linearer Zeit (Leerheit, Endlichkeit) bzw. in quadratischer
Zeit (Schnitt) entscheidbar.
Satz Das Äquivalenzproblem für DEA ist in quadratischer Zeit entscheidbar.
Satz Das Äquivalenzproblem für NEA ist in exponentieller Zeit entscheidbar
(und NP-hart, genauer: PSPACE-vollständig).
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
178
Kontextfreie Sprachen
• Bedeutung: Programmiersprachen (Compilerbau)
• Syntaxbäume
• Chomsky-Normalform
• effiziente Lösung des Wortproblems (CYK-Algorithmus)
• Grenzen kontextfreier Sprachen (Pumping Lemma)
• Charakterisierung durch Kellerautomaten
• Deterministisch kontextfreie Sprachen
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
179
Beispiel für eine kontextfreie Grammatik
G = ({S, X, C}, {x, c, 0, +, −, ; , :=, 6=, LOOP, WHILE, DO, END}, P, S)
mit folgenden Regeln in der Regelmenge P :
S → S; S
S → LOOP X DO S END
S → WHILE X 6= 0 DO S END
S → X := X + C
S → X := X − C
X→x
C→c
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
180
Weiteres Beispiel für eine kontextfreie Grammatik
G = ({S}, {a1, a2, b1, b2}, P, S)
mit der Regelmenge P = {S → SS, S → a1Sb1, S → a2Sb2, S → ε}.
G erzeugt die Sprache D2, die sogenannte Dyck-Sprache über zwei Klammerpaaren. Induktive Definition von D2:
1. ε ∈ D2.
2. Aus w1 ∈ D2, w2 ∈ D2 folgt w1w2 ∈ D2.
3. Aus w ∈ D2 folgt a1wb1 ∈ D2 und a2wb2 ∈ D2.
4. D2 enthält keine weiteren Wörter.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
181
Syntaxbäume
Jeder Ableitung eines Wortes w in einer kontextfreien Grammatik kann
eindeutig ein Syntaxbaum zugeordnet werden.
Sei w ∈ L(G) und S = w0 =⇒ w1 =⇒ w2 =⇒ · · · =⇒ wn = w eine
Ableitung für w. Dann wird der Syntaxbaum folgendermaßen konstruiert:
• Die Wurzel hat die Beschriftung S.
• Nach dem i-ten Schritt ergeben die Beschriftungen der Blätter von links
nach rechts gelesen das Wort wi, 0 ≤ i ≤ n.
• Wird bei der Ableitung eine Regel A → α angewendet, so erhält das
zugehörige Blatt (mit der Beschriftung A) |α| Söhne, deren Beschriftung
von links nach rechts das Wort α ergibt.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
182
Linksableitungen
Definition. Eine Ableitung in einer kontextfreien Grammatik heißt
Linksableitung, wenn in jedem Schritt das am weitesten links stehende
Nichtterminalsymbol ersetzt wird.
Jedem Syntaxbaum zu einer Ableitung kann eindeutig eine Linksableitung
zugeordnet werden, d.h.:
Satz
Die von einer kontextfreien Grammatik G erzeugte Sprache ist die Menge der
durch Linksableitungen in G erzeugbaren Wörter.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
183
Chomsky Normalform
Definition
Eine kontextfreie Grammatik G = (V, Σ, P, S) ist in Chomsky Normalform,
falls jede Regel in P in einer der Formen (i)-(iii) ist:
(i) A → BC mit A, B, C ∈ V ,
(ii) A → a mit A ∈ V und a ∈ Σ,
(iii) S → ε, wobei S auf keiner rechten Seite einer Regel vorkommt.
Satz
Zu jeder kontextfreien Grammatik G kann man eine kontextfreie Grammatik
G0 in Chomsky Normalform konstruieren mit L(G) = L(G0).
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
184
Der Algorithmus von Cocke, Younger und Kasami
Eingabe:
Ausgabe:
kontextfreie Grammatik G = (V, Σ, P, S) in Chomsky NF,
Wort w ∈ Σ∗
ja, falls w ∈ L(G); nein, sonst.
Grundidee des CYK-Algorithmus
• w[s, t] sei das Teilwort von w von der Stelle s bis zur Stelle t, wobei
1 ≤ s ≤ t ≤ n = |w|.
• Bestimme für 1 ≤ j ≤ n und 1 ≤ i ≤ n − j + 1 die Mengen
∗
T [i, j] = {A ∈ V | A =⇒ w[i, i + j − 1]}.
• Es gilt w ∈ L(G) genau dann, wenn S ∈ T [1, n].
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
185
CYK-Algorithmus – Fortsetzung
Induktive Bestimmung der Mengen T [i, j]:
• Für j = 1: T [i, 1] = {A ∈ V | A → w[i, i] ∈ P }
• Für j > 1:
T [i, j] = {A ∈ V | es gibt B, C ∈ V und 1 ≤ k < j mit
A → BC ∈ P, B ∈ T [i, k], C ∈ T [i + k, j − k]}
• CYK-Algorithmus ist Beispiel für Dynamische Programmierung.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
186
Beispiel für CYK-Algorithmus
Die Sprache L = {anbncm | m, n ≥ 1} ist kontextfrei und wird von der
Grammatik G = (V, Σ, P, S) mit den Regeln
S → AB,
A → aAb | ab,
B → cB | c
erzeugt. Eine äquivalente Grammatik in Chomsky Normalform für L hat
folgende Menge von Regeln:
S → AB,
A → CD | CF,
B → EB | c,
F → AD,
C → a,
D → b,
E → c.
Sei x = aaabbbcc. Dann erzeugt der Algorithmus folgende Tabelle.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
187
Beispiel für CYK-Algorithmus – Tabelle
a
a
i
a
C
C
C
......................................................................................................................................
...
..
...............
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
..
........
.
j
b
b
b
D
D
D
c
c
..
..
..
..
..
..
..
..
...
...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
...
...
...
...
...
...
..
...
...
.
.
.
.
.
.
.
.
.
.
...
.
.
.
.
...
....
....
....
....
...
....
....
....
....
...
...
.
.
.
.
.
.
.
.
.
.
...
.
.
.
.
...
.
..
..
..
..
..
..
..
.
.
.
...
.
.
.
.
...
.
..
..
..
..
..
..
..
..
.
.
.
...
.
.
.
.
...
.
.
..
..
..
..
..
...
.
....
.
.
.
.
...
....
.
....
.........
.
..
..
..
..
.
.
.
...
.
.
.
.
...
...
.
...
...
.
...
.
.
.
.
...
....
....
....
.
..
...
....
...
...
....
...
.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
...
..
.. ........
...
...
...
...
...
...
...
...........
...
...
...
...
...
...
...
...
...
....
...
...
...
...
...
...
..... ..
...
...
...
...
...
...
...
...
..... ....
......
...
...
...
...
...
...
...
...
..
.....
.
.
.
...
...
.
...
...
...
...
...
...
...
......
...
...
...
...
...
...
...
...
...
.....
.
.
...
..
..
..
..
..
.
.
...
.
.
...
.
.
.
.
...
...
...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
...
... ........
...
...
...
...
...
...
...
...........
...
...
...
...
...
...
.
...
...
...
...
...
...
...
.......
...
...
...
...
...
...... ..
...
...
...... ....
...
...
...
...
...
...
...
.....
.
.
.
.
.
.
...
...
...
...
.
...
...
...
...
....
...
...
...
...
...
...
...
......
.....
...
..
..
...
..
..
..
..
.....
............................................................................................................................................................................................................................................................................................................................................................................................................................
...
...
...
...
... ........
...
...
...
...
...
...
...........
...
...
...
...
...
...
...
...
...
.......
...
...
...
...
...
...
..... ..
...... ....
...
...
...
...
...
...
......
.
.
.
...
...
...
...
...
...
...
.
..
...
...
...
...
...
...
...
......
.....
..
..
...
...
...
...
...
.....
.........................................................................................................................................................................................................................................................................................................................................................
...
... .......
...
...
...
...
..
...
... ........
...
...
...
....
...
...
...
...
...
.......
....
...
...
...
...
..... ..
...... ....
...
...
...
...
...
.....
.
.
.
...
...
...
...
...
.
...
..
...
...
......
...
...
...
...
.....
...
...
..
..
...
..
.....
............................................................................................................................................................................................................................................................................................
.
.
..
.
...
..
...
..
...
...
...
...
...
... ..........
. ...
...
...
...
...
......
...
....
...
...
.......
...... ..
...
...
...
...
..... ....
.
.
.
...
...
...
.
...
.....
...
...
...
....
...
.....
...
...
...
...
......
...
.....
..
...
..
..
..
......
..................................................................................................................................................................................................................
...
...
...
... ........
...
...
...
..........
.
...
...
....
.......
...
...
...
...... ...
...... ...
..
...
...
.....
.
.
.
.
...
... ........
.
....
....
...
...
...
....
......
.
...
...
.......................................................................................................................................
...
...
...
...
...
...
...
...
...
...
...
...
...
...
..
...
....................................................................
A
=x
E, B E, B
B
F
A
F
A
S
S
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
188
Beispiel für CYK-Algorithmus – Erklärung
In der Tabelle stellt jedes Feld eine Menge T [i, j] von Nichtterminalen dar.
Die Koordinatenachsen für i und j sind eingezeichnet.
Der Algorithmus besteht aus drei Teilen. Im ersten Teil wird die oberste
Zeile (T [i, 1]) berechnet.
Im zweiten Teil werden zeilenweise die weiteren Mengen T [i, j] berechnet,
indem immer die zugehörige Spalte von oben und die nach rechts oben
führende Diagonale betrachtet werden.
Im dritten Teil des Algorithmus schließlich wird die Menge T [1, n] betrachtet,
hier T [1, 8]. Ausgabe “ja” genau dann, wenn S ∈ T [1, n].
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
189
Fortsetzung CYK-Algorithmus
Noch eine Bemerkung: aus der aufgestellten Tabelle kann man auch die
Ableitung für das Wort x ablesen, indem wir rückwärts die Regeln anwenden,
die auf S in T [1, n] geführt haben. Hier sieht die Ableitung für aaabbbc
dann folgendermaßen aus (die Nonterminale, die ersetzt werden, sind jeweils
unterstrichen).
S =⇒ AB =⇒ CF B =⇒ CADB =⇒ CCF DB =⇒ CCADDB
=⇒ CCCDDDB =⇒ aCCDDDB =⇒ aaCDDDB =⇒ aaaDDDB
=⇒ aaabDDB =⇒ aaabbDB =⇒ aaabbbB =⇒ aaabbbc
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
190
Pumping Lemma für kontextfreie Sprachen
Sei L eine kontextfreie Sprache. Dann gibt es eine Konstante k ∈ N, so
dass für alle Wörter z ∈ L mit |z| ≥ k eine Zerlegung z = uvwxy existiert,
so dass gilt:
(i) |vwx| ≤ k und |vx| ≥ 1,
(ii) für alle i ∈ N gilt uv iwxiy ∈ L.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
191
Pumping Lemma – Anwendung
Mit Hilfe des Pumping Lemmas kann man zeigen, dass folgende Sprachen
nicht kontextfrei sind:
• {anbncn | n ≥ 1},
• {ww | w ∈ {a, b}∗},
• {ambnambn | m, n ≥ 1},
2n
• {a
| n ≥ 0},
• {ambn | 0 ≤ m, 1 ≤ n ≤ 2m}.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
192
Abschlusseigenschaften
Satz
Die Menge der kontextfreien Sprachen ist unter den Operationen
(i) Vereinigung,
(ii) Produkt (Konkatenation) und
(iii) Kleene-Stern
abgeschlossen. Sie ist unter den Operationen
(iv) Durchschnitt und
(v) Komplement
nicht abgeschlossen.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
193
Weitere Entscheidungsprobleme
Satz
Das Leerheitsproblem und das Endlichkeitsproblem für kontextfreie Grammatiken sind entscheidbar.
Satz
Das Schnittproblem und das Äquivalenzproblem für kontextfreie Grammatiken sind unentscheidbar.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
194
Kellerautomaten
• endliche Automaten besitzen nur begrenzten Speicherplatz (ihre
Zustände).
• Turingmaschinen besitzen unbegrenzten Speicherplatz mit im Prinzip
wahlfreiem Zugriff.
• Kellerautomaten besitzen unbegrenzten Speicherplatz in Form eines Kellerspeichers (Stack).
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
195
Definition Kellerautomat
Definition Ein (nichtdeterministischer) Kellerautomat (kurz PDA von pushdown automaton) M ist ein 6-Tupel M = (Z, Σ, Γ, δ, z0, #). Dabei ist
• Z das Zustandsalphabet,
• Σ das Eingabealphabet,
• Γ das Kelleralphabet,
• z0 ∈ Z der Anfangszustand,
Z×Γ∗
2E
• δ : Z × (Σ ∪ {ε}) × Γ →
die Zustandsüberführungsfunktion
(2X
E bedeutet dabei die Menge der endlichen Teilmengen von X),
• # ∈ Γ das Kelleranfangssymbol.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
196
Arbeitsweise von Kellerautomaten
• Der PDA startet im Zustand z0 und mit dem Kellerinhalt #.
• Bei (z 0, B1B2 . . . Bk ) ∈ δ(z, a, A) mit a ∈ Σ befindet sich der PDA
im Zustand z, liest auf dem Eingabeband ein a und im Keller ein A
(das oberste Symbol). Er entfernt dieses A aus dem Keller, geht in
den Zustand z 0 über, bewegt den Lesekopf auf dem Eingabeband einen
Schritt nach rechts und schreibt auf den Keller das Wort B1B2 . . . Bk
derart, dass B1 das neue oberste Symbol des Kellers ist.
• Bei (z 0, B1B2 . . . Bk ) ∈ δ(z, ε, A) liest er im Gegensatz zur obigen Aktion
auf dem Eingabeband nichts ein und bewegt den Lesekopf auf dem
Eingabeband nicht.
• Der PDA akzeptiert die Eingabe, wenn er sie vollständig eingelesen hat
und der Keller leer ist (auch # steht nicht mehr im Keller).
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
197
Kellerautomat: Arbeitsweise für
(z 0, B1B2 · · · Bk ) ∈ δ(z, ai, A1)
....................................................................................................................................................................................................................................................................................................................................................................................................
....
..
..
..
..
..
..
..
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
..
.................................................................................................................................................................................................................................................................................................................................................................................................
............
...
...
...
...
...
...
...
...
..
.................................................
..
...
...
...
....
...
...
..........................................................................
...
...
...
...
...
..
...
............................................
..
..
.
...
........
...
........
....
..
..................................................
...
...
...
...
...
...
...
...
...
...
...
..
...............................................
....
...
...
...
...
...
...
...
...
...
...
...
...
...
...............................................
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
..
...............................................
...
..
...
...
...
...
...
...
...
...
...
...
...
...
...............................................
...
...
...
...
...
...
...
...
...
...
...
..
...............................................
a1
a2
...
ai ai+1
...
an
z
A1
A2
..
.
Ar
#
`
....................................................................................................................................................................................................................................................................................................................................................................................................
....
..
..
..
..
..
..
..
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
..
.................................................................................................................................................................................................................................................................................................................................................................................................
............
...
...
...
...
...
...
...
...
..
.................................................
..
...
...
...
....
...
...
..........................................................................
...
...
...
...
...
..
...
............................................
..
..
.
...
........
...
........
....
..
..................................................
...
...
...
...
...
...
...
...
...
...
...
..
...............................................
...
..
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
..
...............................................
....
...
...
...
...
...
...
...
...
...
...
..
...............................................
....
...
...
...
...
...
...
...
...
...
...
...
...
...
...............................................
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
..
...............................................
...
..
...
...
...
...
...
...
...
...
...
...
...
...
...............................................
...
...
...
...
...
...
...
...
...
...
...
..
...............................................
a1
a2
...
ai ai+1
...
an
z0
B1
..
.
Bk
A2
..
.
Ar
#
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
198
Kellerautomat: Arbeitsweise für
(z 0, B1B2 · · · Bk ) ∈ δ(z, ε, A1)
....................................................................................................................................................................................................................................................................................................................................................................................................
....
..
..
..
..
..
..
..
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
..
.................................................................................................................................................................................................................................................................................................................................................................................................
............
...
...
...
...
...
...
...
...
..
.................................................
..
...
...
...
....
...
...
..........................................................................
...
...
...
...
...
..
...
............................................
..
..
.
...
........
...
........
....
..
..................................................
...
...
...
...
...
...
...
...
...
...
...
..
...............................................
....
...
...
...
...
...
...
...
...
...
...
...
...
...
...............................................
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
..
...............................................
...
..
...
...
...
...
...
...
...
...
...
...
...
...
...............................................
...
...
...
...
...
...
...
...
...
...
...
..
...............................................
a1
a2
...
ai ai+1
...
an
z
A1
A2
..
.
Ar
#
`
....................................................................................................................................................................................................................................................................................................................................................................................................
....
..
..
..
..
..
..
..
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
..
.................................................................................................................................................................................................................................................................................................................................................................................................
............
...
...
...
...
...
...
...
...
..
.................................................
..
...
...
...
....
...
...
..............................................................................................................
...
...
...
...
...
..
...
............................................
..
..
.
...
........
...
........
....
..
..................................................
...
...
...
...
...
...
...
...
...
...
...
..
...............................................
...
..
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
..
...............................................
....
...
...
...
...
...
...
...
...
...
...
..
...............................................
....
...
...
...
...
...
...
...
...
...
...
...
...
...
...............................................
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
..
...............................................
...
..
...
...
...
...
...
...
...
...
...
...
...
...
...............................................
...
...
...
...
...
...
...
...
...
...
...
..
...............................................
a1
a2
...
ai ai+1
...
an
z0
B1
..
.
Bk
A2
..
.
Ar
#
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
199
Konfiguration von Kellerautomaten
Definition Sei M = (Z, Σ, Γ, δ, z0, #) ein Kellerautomat. Eine Konfiguration von M ist ein Tripel k ∈ Z × Σ∗ × Γ∗.
Anschaulich beschreibt eine Konfiguration k = (z, v, γ) folgende augenblickliche Situation des PDA:
• er befindet sich im Zustand z,
• v ist die noch nicht verarbeitete Eingabe auf dem Eingabeband und
• im Keller steht das Wort γ, wobei das erste Symbol von γ das oberste
Kellersymbol sein soll.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
200
PDA – Konfigurationsübergänge und akzeptierte Sprache
k1 ` k2 bedeutet, dass der Kellerautomat die Konfiguration k1 in genau
einem Schritt in die Konfiguration k2 überführt.
k1 `∗ k2 bedeutet, dass der Kellerautomat k1 in endlich vielen Schritten
(auch null) in k2 überführt.
Definition
Für einen PDA M = (Z, Σ, Γ, δ, z0, #) sei die von ihm akzeptierte Sprache
T (M ) definiert durch
T (M ) = {w ∈ Σ∗ | (z0, w, #) `∗ (z, ε, ε) für ein z ∈ Z}.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
201
Beispiel eines PDA
Es sei M = ({z0, z1}, {a, b}, {A, B, #}, δ, z0, #) ein Kellerautomat, mit
δ(z0, a, X) = {(z0, AX)}
für X ∈ {B, #},
δ(z0, a, A) = {(z0, AA), (z1, ε)},
δ(z0, b, X) = {(z0, BX)}
für X ∈ {A, #},
δ(z0, b, B) = {(z0, BB), (z1, ε)},
δ(z0, ε, #) = {(z1, ε)},
δ(z1, a, A) = {(z1, ε)},
δ(z1, b, B) = {(z1, ε)},
δ(z1, ε, #) = {(z1, ε)}.
Dann gilt T (M ) = {wwR | w ∈ {a, b}∗}.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
202
Kellerautomaten und kontextfreie Sprachen
Satz
Eine Sprache L ist kontextfrei genau dann, wenn ein (nichtdeterministischer)
Kellerautomat M mit T (M ) = L existiert.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
203
Deterministisch kontextfreie Sprachen
Definition. Ein Kellerautomat M = (Z, Σ, Γ, δ, z0, #) heißt deterministisch,
wenn:
|δ(z, a, A)| + |δ(z, ε, A)| ≤ 1 für alle z ∈ Z, a ∈ Σ, A ∈ Γ.
Definition. Eine Sprache L ⊆ Σ∗ heißt deterministisch kontextfrei, wenn
L$ von einem deterministischen Kellerautomaten akzeptiert wird, wobei
$∈
/ Σ ein Sondersymbol ist.
Satz
Die Menge der deterministisch kontextfreien Sprachen ist eine echte Teilmenge
der Menge der kontextfreien Sprachen.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
204
Beispiel eines deterministischen PDA
M = ({z0}, {a1, a2, b1, b2, $}, {A1, A2, #}, δ, z0, #) ein Kellerautomat mit
δ(z0, a1, X) = {(z0, A1X)}
δ(z0, a2, X) = {(z0, A2X)}
δ(z0, b1, A1) = {(z0, ε)},
δ(z0, b2, A2) = {(z0, ε)},
δ(z0, $, #) = {(z0, ε)}.
für X ∈ {A1, A2, #},
für X ∈ {A1, A2, #},
T (M ) = {w$ | w ∈ D2}, d.h.
die Dyck-Sprache D2 ist deterministisch kontextfrei.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
205
Weiteres Beispiel eines deterministischen PDA
Sei M = ({z0, z1}, {a, b, c, $}, {A, B, #}, δ, z0, #) ein Kellerautomat mit
δ(z0, a, X) = {(z0, AX)}
δ(z0, b, X) = {(z0, BX)}
δ(z0, c, X) = {(z1, X)}
δ(z1, a, A) = {(z1, ε)},
δ(z1, b, B) = {(z1, ε)},
δ(z1, $, #) = {(z1, ε)}.
für X ∈ {A, B, #},
für X ∈ {A, B, #},
für X ∈ {A, B, #},
Dann gilt T (M ) = {wcwR$ | w ∈ {a, b}∗}.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
206
Bedeutung der deterministisch kontextfreien Sprachen
• Wortproblem entscheidbar in linearer Zeit
(gegenüber kubischer Laufzeit des CYK-Algorithmus)
• Ausdruckskraft hinreichend für syntaktische Analyse im Compilerbau
• Bei realen Programmiersprachen kommen LR(k)-Grammatiken und deren Varianten zum Einsatz.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
207
Formale Sprachen – Übersichten
Chomsky-Hierarchie: Typ 3 ( Typ 2 ( Typ 1 ( Typ 0.
Beispiele für die Echtheit der Inklusionen.
• {anbn | n ≥ 1} ∈ Typ 2 \ Typ 3,
• {anbncn | n ≥ 1} ∈ Typ 1 \ Typ 2,
• K ∈ Typ 0 \ Typ 1,
wobei K ⊆ {0, 1}∗ das spezielle Halteproblem ist.
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
208
Charakterisierungen der Sprachfamilien der Chomsky Hierarchie
Sprache
Grammatik
Automat
Andere
Regulär
Typ 3
Endlicher Automat (EA)
Regulärer
Ausdruck
Deterministisch
kontextfrei
Kontextfrei
LR(k)
Kontextabhängig
Typ 1
Rekursiv
aufzählbar
Typ 0
Deterministischer
Kellerautomat (DPDA)
(Nichtdeterministischer)
Kellerautomat (PDA)
(Nichtdeterministischer) Linear
beschränkter Automat (LBA)
Turingmaschine (TM)
Typ 2
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
209
Determinismus vs. Nichtdeterminismus
Nichtdeterminismus
Determinismus
Äquivalenz
NEA
PDA
LBA
NTM
DEA
DPDA
DLBA
DTM
ja
nein
?
ja
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
210
Abschlusseigenschaften
Vereinigung
Durchschnitt
Komplement
Konkatenation
Kleene-Stern
Typ 3
Det. kf.
Typ 2
Typ 1
Typ 0
ja
ja
ja
ja
ja
nein
nein
ja
nein
nein
ja
nein
nein
ja
ja
ja
ja
ja
ja
ja
ja
ja
nein
ja
ja
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
211
Entscheidbarkeitsprobleme
Wortproblem
Leerheitsproblem
Schnittproblem
Äquivalenzproblem
Typ 3
Det. kf.
Typ 2
Typ 1
Typ 0
ja
ja
ja
ja
ja
ja
nein
ja
ja
ja
nein
nein
ja
nein
nein
nein
nein
nein
nein
nein
B. Reichel, R. Stiebe: Theoretische Informatik für Lehrer
212