Sie sind auf Seite 1von 87

2

DR
AF

Skript zur Vorlesung


Theoretische Informatik

Einfuhrung in die Automatentheorie und formale


Sprachen

Alexander Asteroth
Melanie Ludwig
Jakob Meng
Max Schachtschabel
Sigrid Weil

Hochschule Bonn-Rhein-Sieg
University of Applied Sciences
Grantham-Allee 20
D-53757 Sankt Augustin

INHALTSVERZEICHNIS

9
10
11

12
13
14

0 Mathematische Grundlagen

1 Formale Sprachen
1.1 Grundlegende Konzepte . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Grammatiken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5
5
8

2 Regul
are Sprachen und endliche Automaten
2.1 Regul
are Grammatiken . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Regul
are Ausdr
ucke . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Deterministische endliche Automaten . . . . . . . . . . . . . . . . . . . .
2.4 Nichtdeterministische endliche Automaten . . . . . . . . . . . . . . . . .

2.5 Aquivalenz
von DEAs und NEAs . . . . . . . . . . . . . . . . . . . . .

2.6 NEAs mit -Uberg


angen . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7 Konstruktion endlicher Automaten . . . . . . . . . . . . . . . . . . . . .

2.8 Aquivalenz
von endlichen Automaten, regularen Grammatiken und regul
aren Ausdr
ucken . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.9 Minimierung deterministischer endlicher Automaten . . . . . . . . . . .
2.10 Ableitung von Automaten aus Sprachdefinitionen und Automatenkorrektheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.11 Das Pumping Lemma f
ur regulare Sprachen . . . . . . . . . . . . . . . .

10
10
12
14
18
20
23
25

3 Kontextfreie Sprachen
3.1 Kontextfreie Grammatiken . . . . . . . . . . . . . .
3.1.1 Ableitungsbaume . . . . . . . . . . . . . . . .
3.1.2 Die Chomsky-Normalform . . . . . . . . . . .
3.1.3 Das Wortproblem f
ur kontextfreie Sprachen .
3.1.4 Abschlusseigenschaften und nicht-kontextfreie
3.2 Kellerautomaten . . . . . . . . . . . . . . . . . . . .
3.2.1 Deterministisch kontextfreie Sprachen . . . .
3.2.2 LR(k)-Grammatiken . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.

42
42
43
44
51
52
54
59
61

.
.
.
.

76
76
77
78
78

5 Ausblick
5.1 Berechenbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Entscheidbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81
81
81

DR
AF

15

Inhaltsverzeichnis

16
17
18

19

20
21

22
23

24

25

26

27
28
29

30
31

32
33
34

35

36
37
38
39

40
41
42

4 Die
4.1
4.2
4.3

Chomsky Hierarchie
Typ1 und Typ0 Sprachen . . .
Chomsky Hierachie . . . . . . .
Automatenmodelle f
ur TYP1 4.3.1 Turingmaschinen . . . .

. . . . . . . . . . . .
. . . . . . . . . . . .
und TYP0 -Sprachen
. . . . . . . . . . . .

. . . . . .
. . . . . .
. . . . . .
. . . . . .
Sprachen
. . . . . .
. . . . . .
. . . . . .

.
.
.
.

Entwurfsfassung vom 27. September 2016

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.

29
32
35
38

44

45
46
47
48
49
50

Mathematische Grundlagen
In diesem Kapitel werden mathematische Konzepte beschrieben, die in den folgenden
Kapiteln verwendet werden. Die Darstellung erfolgt in der Regel anhand von Beispielen und nicht formal. Die formale ausf
uhrliche Darstellung erfolgt in den Vorlesungen
mathematische Grundlagen und Algebra.
Vorsicht: Der Inhalt dieses Kapitels wird schrittweise erganzt. Dies geschieht immer
dann, wenn in der VL Konzepte verwendet werden, die noch nicht in der betreffenden
Mathematik-Vorlesung eingef
uhrt werden konnten.

DR
AF

51

Kapitel 0

43

52

53
54

55
56
57

58

Aussagenlogik

Der grundlegende Begriff der Aussagenlogik ist die Aussage. Eine Aussage ist ein aus
W
ortern und/oder mathematischen Zeichen aufgebauter Ausdruck, bei dem es sinnvoll
ist zu sagen, ob dieser Ausdruck wahr oder falsch ist. Aussagen sind damit Ausdr
ucke,
denen man sinnvoll einen Wahrheitswert zuordnen kann.
Aussagen kann man nun zusammensetzen. Wenn wir also Aussagen A und B zusammensetzen, erhalten wir wieder eine Aussage. Daf
ur wird definiert:

59

Negation (Verneinung):

60

Disjunktion (oder):

61

Konjunktion (und zugleich):

62

Subjunktion (impliziert):

68

Achtung: Die Bedeutung von A B ist, dass wenn bereits die Aussage A gilt, auch
die Aussage B gelten muss. Dabei muss aber kein kausaler Zusammenhang zwischen A
und B vorhanden sein!
Um den Wahrheitswert solcher verkn
upfter Aussagen zu ermitteln, kann man beispielsweise eine Wahrheitstafel aufstellen, wie in der Vorlesung zu den mathematischen
Grundlagen geschehen.

69

Mengenlehre

63

64
65

66
67

70
71
72

73

74
75

Etwas, was in einer Menge M enthalten ist, bezeichnen wir allgemein mit Element. Ist
x Element der Menge M , so schreiben wir x M . Ist x kein Element der Menge M ,
so schreiben wir x
/ M.
Zwei Mengen sind genau dann gleich, wenn sie die selben Elemente enthalten.
Eine Menge, die keine Elemente enthalt, heit leere Menge und wird i.A. mit
oder {} bezeichnet.

Entwurfsfassung vom 27. September 2016

78

F
ur zwei Mengen A und B gilt, dass A eine Teilmenge von B ist (A B), wenn
jedes Element von A auch zugleich Element von B ist. Gilt auch die Umkehrung
(d.h. B A), so sind die Mengen gleich (A = B).

79

F
ur zwei Mengen A und B ist folgendes definiert:

76
77

80

Vereinigung: A B = {x | x A x B}

81

Durchschnitt: A B = {x | x A x B}

82

Kreuzprodukt1 : A B = {(x, y) | x A y B}

83

/ A}
Komplement von A: A = {x | x
Man kann sich leicht u
berlegen, dass gilt:
AB AB =B

85
86

Mengenrelationen

87
88
89

Beispiel 0.1: Seien A = {x | x = 2i, i N} und B = {x | x N, 0 x 10} Mengen.


Dann ist:
A B = {x | (x = 2i, i N) (x N, 0 x 10)},
A B = {x | (x = 2i, i N) (x N, 0 x 10)},
A = {x | (x = 2i, i N)} = {x | x 6= 2i, i N}.

DR
AF

90

Im Kontext von Sprachen ist ein Alphabet eine (endliche) Menge, deren Elemente allgemein als Symbole bezeichnet werden. Andere Sprechweisen lernen wir im Laufe der
nachfolgenden Kapitel kennen.

84

91

92
93
94

Aufz
ahlende und
beschreibende
Darstellung von
Mengen
charakteristische
Funktion M

95
96

97

F
ur Mengen nutzen wir zwei verschiedene Notationen: die aufz
ahlende und die beschreibende Form. Bei der aufzahlenden Schreibweise werden alle Elemente der Menge aufgez
ahlt, w
ahrend die beschreibende Darstellung eine formalere Definition darstellt.
Beispiel 0.2: Sei A (informell) die Menge der Quadratzahlen zwischen 1 und 20.
Aufz
ahlende Darstellung: A = {1, 4, 9, 16}
Beschreibende Darstellung: A = {x | 1 x 20 x = n2 , n N}
Definition 0.3: F
ur jede Menge M ist die charakteristische Funktion wie folgt definiert:
(
1 falls x M
M (x) =
0 sonst

98

99

100

101

Kreuzprodukt

Das Kreuzprodukt zweier Mengen A, B ist die Menge aller geordneten Paare, deren
erstes Element aus der ersten Menge, und deren zweites Element aus der zweiten Menge
stammt. Hierbei bildet man jede mogliche Kombination dieser Paare.

Beispiel 0.4: Seien A, B Mengen mit A = {1, 2, 3} und B = {a, b, c}. Dann ist das
Kreuzprodukt gegeben durch

Kreuzprodukt

A B = {(1, a), (1, b), (1, c), (2, a), (2, b), (2, c), (3, a), (3, b), (3, c)}

102

103
104
105
106
107

Relationen und Funktionen


W
ahrend eine Funktion f : A B eine eindeutige Zuweisung eines Elementes der
Menge A zu einem Element der Menge B darstellt, konnen einem Element aus A bei
Relationen auch mehere Elemente der Menge B zugewiesen werden. Funktionen und
Relationen sind Teilmengen des Kreuzproduktes. Auerdem ist jede Funktion zugleich
auch Relation (die Umkehrung gilt nat
urlich nicht).

Funktion, Relation 108 Beispiel 0.5: Seien A, B Mengen wie eben mit A = {1, 2, 3} und B = {a, b, c}.
109
Die Menge {(a, 1), (b, 2), (c, 3)} B A ist eine Funktion.
110
Die Menge {(a, 1), (b, 1), (c, 3)} B A ist eine Relation.
1 oder

auch: Kartesisches Produkt, Mengenprodukt

Entwurfsfassung vom 27. September 2016

111

abz
ahlbare Menge

Abz
ahlbarkeit
Definition 0.6: Eine Menge M heit abzahlbar, wenn man jedem Element eineindeutig eine nat
urliche Zahl zuordnen kann, wenn es also eine bijektive (total, injektiv,
surjektiv) Abbildung
f : M N,
N N0

112

gibt.
Bemerkung 0.7: Durch die Abbildung f wird jedem Element m von M eine eindeutige Nummer f (m) = i zugeordnen, d.h. der Menge M wird eine Ordnung auferlegt.
Wir schreiben m = mi falls f (m) = i. M kann somit als Folge
mi0 , mi1 , . . . , mit ik < i k + 1

113

notiert werden.

114

Lemma 0.8: Es gilt:


1. Jede Teilmenge abz
ahlbarer Mengen ist abzahlbar und

116

2. Jede Obermenge u
berabzahlbarer Mengen ist u
berabzahlbar.

117

Beispiel 0.9: Als Beispiele betrachten wir die Beispiele 8.1 a)-d) aus [VW11, S.252254].

DR
AF

118

115

Entwurfsfassung vom 27. September 2016

120

121

122
123
124
125

Formale Sprachen
1.1

Grundlegende Konzepte

W
ahrend bei einer nat
urlichen Sprache aus den Wortern Satze gebildet werden und
damit Satzbau, Grammatik, und vieles mehr bedeutsam ist, besteht eine formale Sprache nur aus W
ortern, die aus den Buchstaben eines Alphabets gebildet werden. Zur
Bezeichnung von Sprachen verwendet man u
blicherweise den Buchschaben L (engl.
language) und das Alphabet wird mit dem griechischen Buchstaben (groes Sigma)
bezeichnet.

DR
AF

126

Kapitel 1

119

127

Alphabet, Wort, ,128 Definition 1.1: Sei ein Alphabet, d.h. eine endliche Menge von Zeichen oder

, +
129
Symbolen 1 . Die Elemente eines Alphabetes nennen wir auch Buchstaben.

130
Unter einem Wort u
ber verstehen wir eine endliche Folge w = a1 a2 . . . ar von
131
Buchstaben ai .
132

133

Die L
ange eines Worts w = a1 a2 . . . ar ist die Zahl seiner Buchstaben, also r. Sie
wird auch mit |w| bezeichnet.

136

Das leere Wort entspricht einer leeren Folge von Buchstaben. Es hat die Lange
0 und wird immer mit dem griechischen Zeichen (kleines Epsilon) bezeichnet.
Beachten Sie, dass es sich bei nie um einen Buchstaben der Menge handelt.

137

bezeichnet die Menge aller Worter u


ber ,

138

+ = \ {} die Menge aller nicht leeren Worter.

134
135

139

140

141

142

143
144

Konkatenation,
145
Pr
afixe, Suffixe,
146
Teilworte, Inverses 147
Wort, Palindrom 148

Beispiel 1.2: Sei = {a, b, c} und w1 = aab, w2 = . Dann ist |w1 | = 3, |w2 | = 0 und
= {, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, . . . }, d.h. es gibt 3 Worter der Lange 1, 9
W
orter der L
ange 2, 27 Worter der Lange 3 usw.
F
ur L1 = {, a, b, c} (W
orter der Lange max. 1) und L2 = {a, ab, ac, aa, ...} (alle Worter,
die mit a beginnen) gilt: L1 und L2 .
Definition 1.3: Sind w = a1 . . . ar und x = b1 . . . bk Worter u
ber , dann steht w x
oder kurz wx f
ur das Wort a1 . . . ar b1 . . . bk , das sich durch Hintereinanderhangen der
W
orter w und x ergibt. Man bezeichnet w x als die Konkatenation von w und x. Man
beachte, dass w = w = w. Ist x und n N, so ist xn = xx
. . . x} bzw. xn =
| {z
nmal

149
150

151

152

x xn1 mit n > 0 und x0 = .


F
ur n = 0 und n = 1 gilt: x0 = und x1 = x. Ein Wort x heit
Pr
afix eines Wortes y, falls es ein Wort w gibt, so dass y = xw.
Suffix eines Wortes y, falls es ein Wort w gibt, so dass y = wx.
1 Dabei

ist ein Symbol ist eine abstrakte Einheit, die nicht n


aher definiert wird, so wie Punkt oder
Gerade in der Geometrie (vgl. [HU80]).

Entwurfsfassung vom 27. September 2016

1.1. GRUNDLEGENDE KONZEPTE

154
155

156
157
158

159
160
161
162
163

Wortfunktionen

Teilwort bzw. Infix eines Wortes y, falls es Worter w1 , w2 gibt, so dass y = w1 xw2 .
Das inverse Wort eines Wortes w = a1 a2 . . . ar1 ar ist das Wort wR = ar ar1 . . . a2 a1 .
Jedes Wort w mit wR = w wird auch Palindrom genannt.
Man beachte, dass die Worter und y stets sowohl Prafix, Infix als auch Suffix von y
sind. x heit echtes Pr
afix von y, wenn x ein Prafix von y ist und x 6= y. Entsprechende
Bedeutung haben die Begriffe echtes Suffix und echtes Teilwort.
Beispiel 1.4: Sei w = Informatikstudium. Dann gibt es neben vielen anderen zum
Beispiel die Pr
afixe Informatik, Informati, Inf, I, . . . , sowie die Suffixe studium, ium, . . . , und die Infixe atikst, . . .
Das k
urzeste Pr
afix, Suffix und Infix ist - dies steht (beliebig oft) vor und zwischen
und hinter jedem Buchstaben.
Notation 1.5: Auf den Wortern u
ber einem Alphabet definieren wir folgende
Funktionen zur Bestimmung. . .

153

. . . der L
ange von W
ortern
l : N0
l() = 0

f
ur w , a

DR
AF

l(wa) = l(w) + 1

(1.1)

. . . der Anzahl eines Buchstabens in einem Wort


anzahl : N0

anzahl (, a) = 0
(

anzahl (wa, b) =

(1.2)

anzahl (w, b) + 1
anzahl (w, b)

falls a = b
sonst

f
ur a, b , w

. . . der Pr
afixeigenschaft

isPrefix : {0 , 1 }

isPrefix (w, ) = 1,

(1.3)

isPrefix (, x) = 0,
x +
(
isPrefix (w, x) falls a = b
isPrefix (aw, bx) =
, a, b, , w, x
0
sonst

. . . der Suffixeigenschaft

isSuffix : {0 , 1 }

isSuffix (w, ) = 1,

(1.4)

isSuffix (, x) = 0,
x +
(
isSuffix (w, x) falls a = b
isSuffix (wa, xb) =
, a, b, , w, x
0
sonst

. . . der Teilworteigenschaft
isInfix : {0 , 1 }
isInfix (w, ) = 1,

(1.5)

isInfix (, x) = 0,
x +
(
1
falls a = b und isPrefix (w, x)
isInfix (aw, bx) =
isInfix (w, bx) sonst

Entwurfsfassung vom 27. September 2016

1.1. GRUNDLEGENDE KONZEPTE

zum Tausch von Buchstaben


tausche :
tausche(, a, b) =
(
tausche(vc, a, b) =

(1.6)

f
ur a, b
tausche(v, a, b) b falls a = c
tausche(v, a, b) c sonst

f
ur a, b, c , w, v +

Bemerkung 1.6: Es gilt


anzahl (w, a) = |w|a
l (w) = |w| = la nge(w)
Beispiel 1.7: Als Beispiel betrachten wir die Anwendung der rekursiven Funkttionen
isInfix , l, anzahl und tausche auf das Wort hallo. F
ur die Infix-Funktion lasst sich leicht
nachvollziehen, dass:
isInfix (hallo, l) = ja
isInfix (hallo, lla) = nein
isInfix (halloR , lla) = ja

rekursive
Funktionen

DR
AF

Mit Hife der L


angen-Funktion kann die Anzahl der Buchstaben in hallo ermittelt werden:
l (hallo) = l(hall) + 1 = l(hal) + 1 + 1 = l(ha) + 1 + 1 + 1
= l(h) + 1 + 1 + 1 + 1 = l() + 1 + 1 + 1 + 1 + 1 = 0 + 1 + 1 + 1 + 1 + 1
=5

Mit anzahl das Vorkommen von l in hallo gezahlt werden:

anzahl (hallo, l) = anzahl (hall, l) = anzahl (hal, l) + 1 = anzahl (ha, l) + 1 + 1


= anzahl (h, l) + 1 + 1 = anzahl (, l) + 1 + 1 = 0 + 1 + 1
=2

Und mit der tausche das l in ein x getauscht werden:

tausche(hallo, l, x) = tausche(hall, l, x) o = tausche(hal, l, x) xo


= tausche(ha, l, x) xxo = tausche(h, l, x) axxo
= tausche(, l, x) haxxo = haxxo
= haxxo

Formale Sprache,
Operationen auf
Sprachen

164
165

166

167
168

Definition 1.8: Eine Sprache u


ber dem Alphabet ist eine Teilmenge von , also
eine Menge von W
ortern u
ber
dem
Alphabet . Seien L, L1 , L2 Sprachen u

ber .
L bezeichnet das Komplement von L in , also die Sprache \ L.

L1 L2 (oder kurz L1 L2 ) ist die Konkatenation von L1 und L2 , d.h. die Menge
aller W
orter w = w1 w2 , wobei w1 L1 und w2 L2 .
Es gilt
Ln = LL
. . . L},
| {z
n-mal

bzw.

Ln = L Ln1

Dabei ist L1 = L und L0 = {}. Der Kleeneabschlu von L ist die Sprache
[
L =
Ln .
n0

169
170

L+ =
n 1.

n1

Ln steht f
ur die Menge aller Worter w1 . . . wn mit wi L und

Entwurfsfassung vom 27. September 2016

1.2. GRAMMATIKEN

Beispiel 1.9: Als Beispiel betrachten wir = {a, b, 0, 1} sowie:


L1 = {a, b}

L2 = {0, 1}

L3 = {, aa}

L4 = {bb, }

L5 = {}

L6 = beliebig

Es gilt:
L1 L2 = {a0, a1, b0, b1}
L3 L4 = {, bb, , aabb, aa} = {, aa, bb, aabb}
L5 L6 = L6
L31 = L1 L21 = L1 L1 L11 = L1 L1 L1 L01
= L1 L1 L1 {} = L1 L1 L1 = {aa, ab, ba, bb} L1
= {aaa, aba, baa, bba, aab, abb, bab, bbb}

Grammatiken

174

Eine Grammatik gibt Regeln an, nach denen Worter einer Sprache generiert werden.
Dies geschieht in der Art eines Termersetzungsprozesses, bei dem Teile eines Worts
schrittweitse ge
andert werden.

175

Definition 1.10: Eine Grammatik ist ein Tupel G = (, V, P , S) bestehend aus

172
173

DR
AF

Grammatik

1.2

171

176
177

178

179

einem Alphabet (dessen Elemente im Kontext von Grammatiken Terminalsymbole genannt werden),

einer endlichen Menge V von Variablen (auch Nichtterminale genannt), mit V


= ,

einer Relation

180

181

182


(V )+ \ + (V )

die Produktionssystem genannt wird; Die Elemente von P heien Produktionen


oder Regeln,

einem Startsymbol S V .

Beispiel 1.11: Ein Beispiel f


ur eine Grammatik ist
G = ({0, 1, . . . , 9}, {S, A}, P, S}

P = {(S, 0), (S, 1A), (S, 2A), . . . , (S, 9A), (A, 1A), (A, 2A), . . . , (A, 9A), (A, )}

Ein anderes Beispiel ist

G = ({a}, {S}, P, S}

P = {S a, S aS} = {(S, a), (S, aS)}

Eine Beispielableitung f
ur diese Grammatik ist:

S aS aaS aaa
Bemerkung 1.12: Die Schreibweise u G v oder kurz u v anstelle von (u, v) P
und u 6G v oder kurz u 6 v, falls (u, v)
/ P ist u
blich. Die Schreibweise






u v1 v2 . . . vn
183

184
185
186
187

ist eine Kurzschreibweise f


ur die Regeln u v1 , u v2 , . . . , u vn .
Bemerkung 1.13: Meist wird auf die explizite Angabe von V , und S bei einer
Grammatik verzichtet und nur das zugehorige Produktionssystem angegeben.
F
ur Nichtterminale sind auerdem Grobuchstaben S, A, B, . . . und f
ur Terminale sind
Kleinbuchstaben a, b, . . . u
ur das Startsymbol verwendet.
blich. S wird u
blicherweise f
Entwurfsfassung vom 27. September 2016

1.2. GRAMMATIKEN

G und G

Definition 1.14:
Sei G = (, V, P , S) eine Grammatik. Die Relation G (kurz ) ist wie folgt definiert:
Seien x und y zwei W
orter u
ber dem Alphabet V . Dann gilt x y genau dann,
wenn es W
orter u, v, w, z (V ) gibt, so dass
x = wuz,
188

y = wvz,

u v.

Die Relation G oder kurz bezeichnet die reflexive, transitive H


ulle von .
Beispiel 1.15:
47A 471A
47 A
47 1A

w uz
w v z
A 1A P

S 4711
S 4A 4711
S 4A 47A 4711
S 4A 47A 471A 4711

Beispiel 1.16:

DR
AF

S 4A 47A 471A 4711A 4711

S 4A 47A 471A 4711A 4711

Es gilt

x y

gdw.

x = y oder es gibt z so dass x z und z y

also dann, wenn es eine Folge x0 , x1 , . . . , xn von Wortern xi (V ) gibt, so dass


x0 = x x1 x2 . . . xn1 xn = y.

189

Wenn x y nennt man das Wort y in G aus x ableitbar.

Definition 1.17: Sei G = (, V, P, S) eine Grammatik. Die durch G erzeugte Sprache

Erzeugte Sprache,

Aquivalenz
von
Grammatiken

L(G) = {w : S w}

190

191

192

193

besteht aus allen W


ortern w , die sich aus dem Startsymbol S ableiten lassen.
L(G) wird h
aufig auch die von G definierte oder generierte Sprache genannt.
Zwei Grammatiken G1 = (, V1 , P1 , S1 ) und G2 = (, V2 , P2 , S2 ) mit demselben
Terminalalphabet heien
aquivalent, falls L(G1 ) = L(G2 ).

Entwurfsfassung vom 27. September 2016

195

196

197

Regul
are Sprachen und
endliche Automaten
2.1

Regul
are Grammatiken

Definition 2.1: Sei G = (, V, P , S) eine Grammatik. G heit regul


ar oder vom Typ
3, wenn
P V ({} V )

DR
AF

Regul
are
Grammatik

Kapitel 2

194

198
199

200

201

202

203

Also haben regul


are Grammatiken Ableitungsregeln, die auf der linken Seite ein Nichtterminal besitzen; dieses kann in einem Schritt entweder entfernt, zu einem Terminal
oder zu einem Terminal gefolgt von einem Nichtterminal ersetzt werden. Das f
uhrt dazu, dass stets auf der rechten Seite ein Nichtterminal steht und das abgeleitete Wort
links davon entsteht. Alternativ kann man regulare Sprachen auch so definieren, dass
das abgeleitete Wort auf der rechen Seite des Terminals entsteht.
Beispiel 2.2: G10 ist eine regulare Grammatik, die Dezimalzahlen erzeugt. Dabei ist
G10 = ({0, 1, . . . , 9}, {S, Z}, P10 , S)

P10 = {S 0 | 1Z | 2Z | | 9Z, Z | 0Z | 1Z | | 9Z}

Rechts- und
Linkslineare
Grammatiken

204

Hieraus l
asst sich z.B. das Wort 4711 ableiten, vgl. Beispiel 1.16.

205

Definition 2.3: Sei G = (, V, P , S) eine Grammatik. G heit

206

rechtslinear, wenn P V ({} V ).

207

linkslinear, wenn P V ({} V ).

Bemerkung 2.4: Bevor wir zeigen, dass es zu jeder rechtslinearen Grammatik eine
linkslineare Grammatik gibt und umgekehrt, zeigen wir, dass man auf Regeln der Form:
A a,

208

A V, a

verzichten kann, die lediglich einen Buchstaben erzeugen.


Hierzu f
uhren wir zun
achst die neue Regel
T

209

in das Produktionssystem ein.


Nun ersetzen wir alle Regeln der Form: A a durch
A aT

210
211
212

Bemerkung 2.5: F
ur Grammatiken G = (, V, P , S) mit 6 L(G) konnen wir G
in eine a
quivalente Grammatik G0 = (, V, P 0 , S) transformieren, die nur genau eine
Regel der Form T enthalt.
Entwurfsfassung vom 27. September 2016

10


2.1. REGULARE
GRAMMATIKEN

213

Wir initialisieren hierzu P 0 := P .


F
ur jede Regel der Form
A ,

A V, A 6= T

in P suchen wir alle Regeln der Form:


B aA,
214

215
216
217
218
219

B V, a

in denen A auf der rechten Seite vorkommt.


Nun f
ugen wir die Regel
B aT
in P 0 ein und entfernen A .
Auf diese Weise kann B nach wie vor zu a abgeleitet werden und die Epsilon-Regel
f
ur A wurde entfernt.
Falls L(G) kann die gleiche Transformation durchgef
uhrt werden. Lediglich die
Regel S muss im Produktionssystem P 0 erhalten bleiben.

enth
alt.
Wir konstruieren ein Produktionssystem P 0 , das zunachst alle Regeln von P enthalt.
F
ur jede Regel der Form V suchen wir alle Vorkommen von V auf der rechten
Seite einer Regel:
A aV

DR
AF

220

Bemerkung 2.6: F
ur Grammatiken G = (, V, P , S) mit 6 L(G) konnen wir G
in eine
aquivalente Grammatik G0 = (, V, P 0 , S) transformieren, die keine Regel der
Form
V

f
ur jede solche Regel f
ugen wir die Regel

Aa

221

222

223

224

225

226

227

228

229

230
231

232

zu P 0 hinzu und entfernen V .

Satz 2.7: Zu jeder rechtslinearen Grammatik G gibt es eine aquivalente linkslineare


Grammatik G0 und umgekehrt.

Beweis. Zum Beweis werden wir zu jeder rechtslinearen Grammatik G eine aquivalente

linkslineare Grammatik G0 konstruieren (und umgekehrt). Die Aquivalenz


der Grammatiken zeigen wir, indem wir f
ur ein beliebiges Wort einer der zwei Grammatiken
zeigen, dass eine Ableitung auch in der anderen Grammatik exisitert. Somit gilt dann
also L(G) = L(G0 ).
Wir betrachten hierzu die Ableitung eines beliebigen Wortes w = a1 . . . an , w L(G),
wobei wir von der Grammatik G = (, V, P , S) fordern, dass sie nur eine Epsilon-Regel
T besitzt, alle anderen Regeln von der Form A aB sind und 6 L(G). Den Fall
L(G) behandeln wir im Anschluss.
Sei nun
S = A0 a1 A1 a1 a2 A2 a1 a2 . . . an An a1 a2 . . . an

233
234
235
236
237
238

(2.1)

die Ableitung von w in G, wobei S = A0 , T = An und Ai V beliebig und Ai1 ai Ai


im Produktionssystem von G f
ur alle i = 1 . . . n.
Wir konstruieren eine
aquivalente linkslineare Grammatik G0 = (, V, P 0 , T ), indem
wir T zum Startsymbol erklaren und f
ur jede Regel A aB die Regel B Aa in P 0
einf
ugen und zus
atzlich die Regel S einf
ugen. F
ur jede Regel der obigen Ableitung
Ai1 ai Ai gibt es in G0 also eine Regel der Form Ai Ai1 ai .
Damit existiert in G0 die folgende linkslineare Ableitung von w, also gilt w L(G0 ):
T = An An1 an An2 an1 an . . . A1 a2 . . . an Sa1 . . . an a1 . . . an (2.2)
Also gilt f
ur jedes Wort w L(G) auch w L(G0 ). D.h.
L(G) L(G0 )
Entwurfsfassung vom 27. September 2016

11

2.2. REGULARE
AUSDRUCKE

Umgekehrt ist jede Ableitung eines Wortes w0 in der Grammatik G0 von der Gestalt 2.2.
Damit existiert eine Ableitung der Form 2.1 f
ur w0 auch in G. Also gilt analog
L(G0 ) L(G)
Insgesamt gibt es also f
ur jede rechtslineare Grammatik G eine linkslineare Grammatik
G0 mit
L(G) = L(G0 )
239
240
241

242
243
244

Gilt L(G) f
ugen wir zu P 0 die Regel T hinzu.
Die Transformation von links- zu rechtslinearen Grammatiken erfolgt analog und wird
entsprechend bewiesen.
Beispiel 2.8: Um die praktische Anwendung regularer Grammatiken zu illustrieren
verwenden wir den Lexer-Generator ANTLR. Die Beispielgrammatik f
ur Dezimalzahlen
ohne f
uhrende Nullen wird in ANTLR durch:

250

dargestellt.

246
247

DR
AF

248

249

lexer grammar Zahl;


Zahl : 0 | 1Z | 2Z | 3Z | 4Z | 5Z | 6Z | 7Z | 8Z | 9Z;
fragment Z : 0Z |1Z | 2Z | 3Z | 4Z | 5Z | 6Z | 7Z |
8Z | 9Z | E ;
fragment E : ;

245

REG , L(REG )

253

Definition 2.9: Die Menge der regularen Grammatiken u


ber dem Alphabet bezeichnen wir mit REG . Alle Sprachen, die von einer Grammatik aus REG erzeugt
werden k
onnen, werden zu der Menge L(REG ) zusammengefasst.

254

2.2

251

252

255
256

Syntax regul
arer
Ausdr
ucke

257

258

Regul
are Ausdru
cke

In der Praxis finden zur Formulierung regularer Sprachen neben den Typ 3 Grammatiken insbesondere regul
are Ausdr
ucke Anwendung.

Definition 2.10: Sei ein Alphabet. Die Menge der regularen Ausdr
ucke u
ber
wird mit REXP bezeichnet und ist wie folgt definiert:

259

1. und sind regul


are Ausdr
ucke.

260

2. F
ur jedes a ist a ein regularer Ausdruck.

261

3. Mit und sind auch ( ), (|) und ( ) regulare Ausdr


ucke.

262

4. Nichts sonst ist ein regularer Ausdruck.

263
264

265
266
267

Semantik regul
arer
Ausdr
ucke

Beispiel 2.11: Sei = {a, b}, mit a, b regulare Ausdr


ucke. Dann ist auch (a | b) ein
regul
arer Ausdruck.
Bemerkung 2.12: Die Klammern werden oft weggelassen, wobei der Verkn
upfungsoperator
| die schw
achste Priorit
at hat und der Sternoperator am starksten bindet. Auerdem
ist es (wie bei der Multiplikation) u
blich, statt ( ), kurz zu schreiben.
Definition 2.13: Die zu einem regularen Ausdruck gehorende Sprache L() ist wie
folgt definiert:
L() =
L(a) = {a}
L(|) = L() L()

268
269
270
271

L() =
L( ) =
L ( ) =

{}
L() L()
L()

Zwei regul
are Ausdr
ucke 1 , 2 heien
aquivalent (geschrieben als 1 2 ), wenn
L(1 ) = L(2 ).
Die Menge aller durch regulare Ausdr
ucke u
ber definierbaren Sprachen bezeichnen
wir mit L(REXP ).
Entwurfsfassung vom 27. September 2016

12

2.2. REGULARE
AUSDRUCKE

272
273

Beispiel 2.14: Sei = {0, 1, . . . , 9}, dann ist = ((0 | 1) ) regularer Ausdruck und
L() = {, 0, 1, 00, 01, 10, . . . }

Regul
are
274
Bemerkung 2.15:
Grammatiken und 275 In ANTLR wird eine regulare Grammatik G mit dem Schl
usselwort:
regul
are Ausdr
ucke
276
lexer grammar G;
in ANTLR

279
280
281
282

283
284
285

286
287

288
289

lexer grammar G;
S
: aS | bE ;
fragment E : ;
Eine Grammatik-Regel kann auch regulare Ausdr
ucke enthalten, die folgendem Schema
entsprechen m
ussen:
Jeder Buchstabe ist ein regularer Ausdruck und muss in einfache Anf
uhrungszeichen
gesetzt werden.
Beispiel: B : a;

DR
AF

290

eingeleitet. Alle Statements in ANTLR m


ussen durch ein Semikolon abgeschlossen werden. Jeder Lexer-Regel wird ein Name gegeben, der gro geschrieben werden muss, ansonsten gelten die u
ur Namen (die auch unter antlr.org nachgelesen
blichen Regeln f
werden k
onnen). Es folgt ein Doppelpunkt und die eigentliche Regel. Diese wird mit
einem Semikolon abgeschlossen.
Beispiel:

277
278

291

292

293

294

295

296

297
298
299

300
301

302
303
304

305
306
307

Es k
onnen Buchstabenbereiche angegeben werden: [a-c] oder [1-9], in diesem
Fall sind keine Anf
uhrungszeichen zu verwenden:
Beispiel: Ziffer : [0-9];
Regeln und Ausdr
ucke konnen geklammert werden und mit dem Oder-Operator
| verkn
upft werden.
Beispiel:
ZifferOderBuchstabe : Ziffer | Buchstabe;
Ziffer
: [0-9];
Buchstabe : [a-zA-Z];

Der Stern-Operator kann auf Regeln und Ausdr


ucke angewendet werden.
Beispiel:
Identifier : Buchstabe(Ziffer|Buchstabe)*;
Ziffer : [0-9];
Buchstabe : [a-zA-Z];

Mit regul
aren Ausdr
ucken kann gerechnet werden, ahnlich wie man es von Zahlen her
kennt. Dabei nimmt | die Rolle von Plus und die Rolle von Mal ein (mit kleinen
Einschr
ankungen).

Rechenregeln f
ur 308 Satz 2.16: Seien , , REXP , es gilt:
regul
are Ausdr
ucke
309
(i) ist das Einselement des |-Operators und der Annihilator des -Operators.
310

(ii) ist das Einselement des -Operators.

311

(iii) | und sind assoziativ

312

(iv) | ist kommutativ


(v) F
ur | und gelten die folgenden Distributivgesetze:
((|) ) (( ) | ( )),

313

(( (|)) (( )|( ))

(vi) | ist idempotent, d.h. |


Entwurfsfassung vom 27. September 2016

13

2.3. DETERMINISTISCHE ENDLICHE AUTOMATEN

314

(vii) ist nicht kommutativ

315

Beweis.

316

(i)
L(|) = L() L() = L() = L()
L( ) = L() L() = L() =
(ii)
L( ) = L() L() = L() {} = L()
317

(iii)-(vii) Ubungsaufgabe
1

318

Aufgaben
1 Beweisen Sie die Aussagen (ii)-(vii) aus Satz 2.16.

320

2.3

Deterministische endliche Automaten

322

Beispiel 2.17: Der Automat

DR
AF

321

( S. ??)

319

q0

q1

0, 1

q2

323

324

325

beschreibt die gleiche regulare Sprache wie = 0 | 1 (0 | 1) bzw. eine Grammatik


mit Produktionssystem P = {S 0 | 1Z, Z 0Z | 1Z | }.
Definition 2.18: Ein DEA ist ein Tupel

Deterministischer
endlicher Automat
(DEA)

M = (, Q, , q0 , F )

326

bestehend aus

327

einer endlichen Menge Q von Zust


anden

328

einem endlichen Alphabet

329

einer partiellen Funktion : Q Q

330

einem Anfangszustand (auch Startzustand genannt) q0 Q

331

einer Menge F Q von Endzust


anden (auch Akzeptanzzust
ande genannt).

332
333
334

335
336
337
338

wird auch Ubergangsfunktion


genannt.
Die Menge aller deterministischen Automaten mit dem Alphabet bezeichnen wir mit
DEA .
Einem DEA M kann sein Transitionsdiagramm TM zugeordnet werden. Dies ist ein
gerichteter Graph, dessen Knoten die Zustande des DEA sind. Von qi f
uhrt eine Kante
zu qj , die mit a annotiert ist, gdw. (qi , a) = qj . Endzustande q F werden doppelt
eingekreist, der Startzustand wird mit einem Pfeil markiert.

Entwurfsfassung vom 27. September 2016

14

2.3. DETERMINISTISCHE ENDLICHE AUTOMATEN

339

Beispiel 2.19:

1
0

q1

q0

M = ({0, 1}, {q0 , q1 }, , q0 , {q1 })


= {(q0 , 1, q1 ), (q1 , 1, q0 ), (q0 , 0, q0 ), (q1 , 0, q1 )}

341
342

343
344
345

Beispiel 2.20: Der Automat modelliert den Gem


utszustand des Kr
umelmonsters

ucklich, =indifferent, =ungl


ucklich), wenn dieses Kekse ( ) oder Apfel
( )
( =gl
bekommt.

DR
AF

M
ullerscher
Kr
umelmonsterautomat

Akzeptanzverhalten von Automaten Ein endlicher Automat arbeitet auf Eingabew


ortern er frisst sozusagen seine Eingabe auf. Merken kann man sich dies mit
dem Kr
umelmonsterautomaten:

340

346

M = (, Q, , q0 , F )
={ ,

Q={ ,

q0 =

F ={ }
= {( ,

347

Lauf, akzeptierte
Sprache

348

349
350

), ( ,

Akzeptierte Eingabe:
Nicht akzeptierte Eingabe:
Denn:

), ( ,

( ,

), ( ,

), ( ,

)}

)=

Definition 2.21: Sei M = (, Q, , q0 , F ) ein DEA und w = a1 a2 . . . an .


Falls der Automat die gesamte Eingabe verarbeiten kann, falls also f
ur alle
i = 1, . . . , n 1:
Entwurfsfassung vom 27. September 2016

15

2.3. DETERMINISTISCHE ENDLICHE AUTOMATEN

(qi , ai+1 ) 6= und qi+1 = (qi , ai+1 ),

351

352
353
354

dann nennen wir die Zustandsfolge q0 . . . qn den Lauf von M f


ur w. Ist qn F ,
dann sprechen wir von einem akzeptierenden Lauf; andernfalls von einem verwerfenden Lauf.
Kann der Automat nicht die gesamte Eingabe verarbeiten, gilt also f
ur ein m n:
(qi , ai ) = qi+1 Q, i = 0, . . . , m 1 aber (qm , am+1 ) =
dann ist der zu w gehorende Lauf die Folge
q0 q1 . . . , qm ,

356
357
358
359

L(DEA )

L(REG )

360

361

Die von M akzeptierte Sprache L(M ) ist die Menge aller Worter w , f
ur die es
einen akzeptierenden Lauf in M gibt.
Die Menge aller Sprachen u
ber , die von einem endlichen Automaten akzeptiert werden, bezeichen wir mit L(DEA )
Satz 2.22: Zu jedem DEA gibt es eine aquivalente regulare Grammatik.

Beweis. F
ur den endlichen Automaten M = (, Q, , q0 , F ) konstruieren wir eine regul
are Grammatik G = (, Q, P , q0 ), die die Zustande des DEA als Variablen und den
Startzustand von M als Startsymbol verwendet. Das Produktionssystem wird wie folgt
definiert:

DR
AF

362

dieser ist verwerfend.

355

363

364

365

Falls q F gilt q .

366

F
ur q 6 F und (p, a) = q gilt p aq.

367

368

Wir zeigen L(G) = L(M ) durch wechselseitige Inklusion:


: Sei x = a1 a2 . . . an L(M ) und q0 q1 . . . qn der zu x gehorende akzeptierende Lauf.

q0 a1 q1 a1 a2 q2 . . . a1 a2 . . . an1 an qn a1 a2 . . . an1 an

eine Ableitung von x in G. Also ist

x L(G).

Sei x L(G). Die Ableitung von x in G hat die Form:

q0 a1 q1 a1 a2 q2 . . . a1 a2 . . . an2 an qn a1 a2 . . . an1 an

Da qn gilt auerdem qn F ist ein Endzustand. Daher ist q0 q1 . . . qn der zu


x = a1 a2 . . . an geh
orende akzeptierende Lauf, also
x L(M )

369

Bemerkung 2.23: Wir konnen die Ubergangsfunktion


durch eine totale Funktion
total ersetzen, die das Akzeptanzverhalten von M nicht verandert. Dazu m
ussen wir

lediglich M um einen neuen Fangzustand tot erweitern und die Ubergangsfunktion


wie
folgt modifizieren:

(q, a) : falls q Q und (q, a) 6=
total (q, a) =
tot
: sonst

Totale

Ubergangsfunktion

370
371
372

Der neue Fangzustand ist kein Akzeptanzzustand.


Aus technischen Gr
unden werden wir im folgenden haufig voraussetzen, dass ein DEA

mit einer totalen Ubergangsfunktion


vorliegt.
Entwurfsfassung vom 27. September 2016

16

2.3. DETERMINISTISCHE ENDLICHE AUTOMATEN

Beispiel 2.24: Sei


M = ({0, 1}, {q0 , q1 , q2 }, , q0 , {q1 , q2 })
= {(q0 , 1, q1 ), (q0 , 0, q2 ), (q1 , 1, q1 ), (q1 , 0, q1 )}
Dann ist
Mtotal = ({0, 1}, {q0 , q1 , q2 , tot}, total , q0 , {q1 , q2 })
total = {(q0 , 1, q1 ), (q0 , 0, q2 ), (q1 , 1, q1 ), (q1 , 0, q1 )

(q2 , 0, tot), (q2 , 1, tot), (tot, 0, tot), (tot, 1, tot)}

q1

tot

DR
AF

q1

0, 1

0, 1

q0

0, 1

q0

q2

0, 1

q2

373

374

Konfigurationen 375
und Konfigurati- 376
ons
uberg
ange eines377
DEAs

Die Semantik deterministischer endlicher Automaten kann alternativ auch u


ber Konfi
gurationen oder u
angegeben werden:
ber die erweiterte Ubergangsrelation

Definition 2.25: Eine Konfiguration k eines DEAs ist ein Paar (q, v), q Q, v .
Dabei bezeichnet q den aktuellen Zustand des Automaten und v die noch zu verarbeitende Eingabe. Die Menge aller moglichen Konfigurationen ist Q .
Gilt (q, a) = q 0 und beginnt v mit dem Buchstaben a, also v = av 0 , dann f
uhrt der
Automat einen Konfigurations
ubergang von (q, v) nach (q 0 , v 0 ) aus. Wir notieren dies
als
(q, v) ` (q 0 , v 0 )
` ist eine Relation u
ber der Menge der Konfigurationen, also
` (Q ) (Q )

378
379

380

Erweiterte

Ubergangsfunktion
f
ur DEAs,
akzeptierte Sprache

` bezeichnet die transitive H


ulle der Relation `. Sie ist rekursiv definiert durch: k ` k

f
ur alle k (Q ) und k1 ` k2 falls es ein k3 gibt mit k1 ` k3 ` k2 (jeweils
ki Q )
Es gilt:
L(M ) = { w | (q0 , w) ` (qF , ), qF F }
Definition 2.26: Sei M = (, Q, , q0 , F ) ein DEA. Wir erweitern zu einer partiellen
Abbildung
: Q Q.
Sei a , x und q Q. Dann ist

( (q, a), x ) : falls (q, a) 6=
(q, ) = q,
(q, ax) =

: sonst.
Es gilt:
L(M ) = {w : (q0 , w) F }

381

Entwurfsfassung vom 27. September 2016

17

2.4. NICHTDETERMINISTISCHE ENDLICHE AUTOMATEN

382

Beispiel 2.27: F
ur einen Automaten mit folgendem Transitionsdiagramm
0

0
1
q0
1

383

385

386

nehmen wir an, dass wir uns im Zustand q1 befinden und das Restwort 1001 gegeben

ist. Dann ergibt sich f


ur die Ableitung mit erweiterter Ubergangsfunktion:
(q1 , 1001) = ((q1 , 1), 001)
= (q0 , 001)
= ((q0 , 0), 01)
= (q0 , 01)
= ((q0 , 0), 1)
= (q0 , 1)
= ((q0 , 1), )
= (q1 , )
= q1
Bemerkung 2.28:

gdw. (q0 , w) ` (q 0 , )

DR
AF

(q0 , w) = q 0

384

q1

387

2.4

Nichtdeterministische endliche Automaten

Definition 2.29: Ein nichtdeterministischer endlicher Automat (NEA)

Nichtdeterministischer endlicher
Automat (NEA)

M = (, Q, , Q0 , F )

388

besteht aus

389

einer endlichen Menge Q von Zustanden,

390

einem endlichen Alphabet ,

391

einer Menge F Q von Endzustanden,

392

einer totalen Ubergangsfunktion


: Q 2Q ,

393

einer Menge Q0 Q von Anfangszust


anden.

394

Potenzmenge

395
396

397
398
399

400
401

Notation 2.30: Die Potenzmenge 2Q von Q wird auch mit (Q) oder Pot(Q) bezeichnet.

Bemerkung 2.31: Die totale Ubergangsfunktion


eines NEAs bedeutet (im Gegensatz
zum DEA) nicht, dass f
ur jeden Zustand und jeden Buchstaben ein Nachfolgezustand
existiert. F
ur NEAs entspricht ein undefinierter Nachfolgezustand einer leeren Menge von Nachfolgezust
anden. Damit gibt es f
ur NEAs keine Definitionsl
ucken bei der

Ubergangsfunktion
.

404

Bemerkung 2.32: Alternativ kann die Ubergangsfunktion


auch als Relation u
ber

Q Q verstanden werden. F
ur jeden Ubergang (q, a) = {q1 , . . . , qk } enthalt die
Relation die Tripel (q, a, q1 ), . . . , (q, a, qk ).

405

Beispiel 2.33: Beispiel f


ur einen NEA:

402
403

Entwurfsfassung vom 27. September 2016

18

2.4. NICHTDETERMINISTISCHE ENDLICHE AUTOMATEN

1
q0

q1

0, 1

0
q2

0, 1

406

407
408

wobei der Nichtdeterminismus durch (q0 , 0) = {q1 , q2 }, bzw. = {. . . , (q0 , 0, q1 ), (q0 , 0, q2 ), . . . }


entsteht.
Definition 2.34: Sei w = a1 a2 . . . an und q0 q1 . . . qm eine nicht verlangerbare
Zustandsfolge mit

Lauf, akzeptierte
Sprache

409
410

q0 Q0 , (qi , ai+1 ) 6= und qi+1 (qi , ai+1 ), i = 1, . . . , m 1.

Ist m = n, dann nennen wir q0 . . . qn einen Lauf von M f


ur w. Dieser heit
akzeptierend, wenn qn F ; andernfalls verwerfend.

DR
AF

Ist m < n und (qm , am+1 ) = , dann nennen wir


q0 . . . qm

411

412
413

414

415
416
417

einen verwerfenden Lauf von M f


ur w.

Die von M akzeptierte Sprache L(M ) ist die Menge aller Worter w , f
ur die es
einen akzeptierenden Lauf gibt.
Bemerkung 2.35: Im Gegensatz zu DEAs kann ein Wort w unterschiedliche Laufe
in einem NEA haben. Diese konnen akzeptierend oder auch verwerfend sein. F
ur die
Akzeptanz wird beim NEA lediglich gefordert, dass einer der Laufe f
ur w akzeptierend
ist.

Definition 2.36: F
ur einen NEA M = (, Q, , Q0 , F ) erweitern wir die Ubergangsfunktion zu einer Abbildung
: 2Q 2Q .

Erweiterte

Ubergangsfunktion

418
419

F
ur eine Zustandsmenge T Q ist (T, w) die Menge der Zustande, die man mit dem
Wort w von einem beliebigen Zustand p T erreichen kann.
Sei T Q und a , w . F
ur das leere Wort gilt
(T, ) = T

F
ur nichtleere W
orter, die mit dem Buchstaben a beginnen gilt :
[
(T, av) =
( (p, a), v ).
pT

wobei w = av, v . Die von M akzeptierte Sprache ist


L(M ) = {w : (Q0 , w) F 6= }.
420

Bemerkung 2.37:

(T, av) =

[
qT

( (q, a), v ) =

(q, a), v

qT

Entwurfsfassung vom 27. September 2016

19


2.5. AQUIVALENZ
VON DEAS UND NEAS

Konfigurationen
von NEAs

Definition 2.38: F
ur die Konfigurationen einen NEAs M = (, Q, , Q0 , F ) gilt:
(q, av) ` (q 0 , v) gdw.

q 0 (q, a),

q, q 0 Q, a , v

` ist also erneut eine Relation u


ber der Menge der Konfigurationen, also
` (Q ) (Q )
421

` bezeichnet die transitive H


ulle der Relation `.
Bemerkung 2.39: Wie f
ur DEAs gilt:
q 0 (q0 , w) gdw. (q0 , w) ` (q 0 , )
F
ur die Menge der akzeptierten Worter von M gilt:
w L(M ) gdw. (q0 , w) ` (qF , ) f
ur ein qF F

Aquivalenz
von
endlichen
Automaten

2.5

Aquivalenz
von DEAs und NEAs

422

Definition 2.40: Seien M1 und M2 zwei endliche Automaten mit demselben Alphabet
. M1 und M2 heien
aquivalent, falls

DR
AF

L(M1 ) = L(M2 ).
423

Lemma 2.41: Zu jedem DEA gibt es einen aquivalenten NEA.


Beweis. Jeder DEA M = (, Q, , q0 , F ) kann als NEA aufgefasst werden: hierzu definieren wir einen NEA M 0 wie folgt:
M 0 = (, Q, 0 , {q0 }, F ),

wobei

(q, a) =

{(q, a)}

: falls (q, a) 6=
: sonst.

Jeder Lauf von M 0 f


ur w ist ein Lauf von M und umgekehrt. Somit gilt
L(M ) = L(M 0 ).

424

425

426

427
428

429
430

431

432

Lemma 2.42: Zu jedem NEA gibt es einen aquivalenten DEA.

Beweis. Sei M = (, Q, , Q0 , F ) ein NEA.


Wir konstruieren einen
aquivalenten DEA, der die gleichen Worter akzeptiert wie M .
Ein Wort w wird von M akzeptiert, wenn es einen Lauf von M gibt, der in einem
Endzustand endet. D.h. wenn mit den Buchstaben von w ein Zustand erreicht werden kann, der in F liegt. Dies kann man sich auch sehr gut an der Definition von
veranschaulichen (vgl. Bsp. 2.43).
Diese Idee f
uhrt zur so genannten Potenzmengenkonstruktion.
Wir definieren einen DEA, dessen Zustande Mengen von Zustanden in M sind, seine
Zustandsmenge ist also die Potenzmenge 2Q :

M 0 = , 2Q , 0 , Q0 , F 0 ,
Endzust
ande sind alle Teilmengen von Q, die mindestens einen Endzustand enthalten:
F 0 = {T Q : T F 6= }

Die Ubergangsfunktion
dr
uckt wie bei die Erreichbarkeit aus:
[
0 (T, a) =
(q, a) f
ur alle a .
qT

Entwurfsfassung vom 27. September 2016

20


2.5. AQUIVALENZ
VON DEAS UND NEAS

Als Spezialfall gilt f


ur die leere Menge: 0 (, a) = f
ur alle a . Zeige:
L(M ) = L(M 0 ).

435

: Sei w = a1 a2 . . . an L(M ) und q0 q1 . . . qn ein akzeptierender Lauf von M f


ur w.

Dann ist q0 Q0 , qi+1 (qi , ai+1 ), i = 0, 1, . . . , n 1, und qn F . Sei T0 T1 . . . Tn der


zu w geh
orende Lauf in M 0 . Durch Induktion nach i kann man zeigen, dass

436

qi Ti , i = 0, 1, . . . , n.

433
434

IV: F
ur jeden Lauf T0 T1 . . . Tn gilt: T0 = Q0 und somit q0 T0 .
IA: Sei qi Ti
IS: Es gilt:
Ti+1 = 0 (Ti , ai+1 )
und
[

0 (Ti , ai+1 ) =

(q, ai+1 )

qTi

Wegen der IA gilt qi Ti , insgesamt also:

qi+1 = (qi , ai+1 ) Ti+1


437

DR
AF

438

Insbesondere ist qn Tn F und daher Tn F 6= . Hieraus folgt Tn F 0 . Also ist


T0 T1 . . . Tn ein akzeptierender Lauf. Somit ist w L(M 0 ).
: Sei w L(M 0 ) und w = a1 . . . an . Weiter sei T0 T1 . . . Tn der zu w gehorende Lauf

in M 0 . Dann ist T0 = Q0 , Ti+1 = 0 (Ti , ai+1 ), i = 0, 1, . . . , n 1, und Tn F 0 , also


Tn F 6= .

439

440

441

442

Wir w
ahlen einen beliebigen Zustand qn Tn F .

443

Sei qn1 Tn1 mit qn (qn1 , an ).

444

Sei qn2 Tn2 mit qn1 (qn2 , an1 ).

445

.
..

446

Sei q0 T0 mit q1 (q0 , a1 ).

(allgemein sei: qni Tni mit qni+1 (qni , ani+1 ))

Beachte: Es gilt

Tni+1 = 0 (Tni , ani+1 ) =

(q, ani+1 ).

qTni

447

Daher gibt es zu jedem Zustand qni+1 Tni+1 einen Zustand


qni Tni

448

mit

qni+1 (qni , ani+1 ).

449

Wegen T0 = Q0 ist q0 ein Anfangszustand und q0 q1 . . . qn ein Lauf von M f


ur w.

450

Wegen qn F ist der Lauf q0 q1 . . . qn akzeptierend.

452
453

Also ist w L(M ).


Beispiel 2.43: Gegeben sei ein endlicher nichtdeterministischer Automat, der durch
das folgende Transitionsdiagramm dargestellt werden kann:

q0

q1

q2

q3

Entwurfsfassung vom 27. September 2016

q4

a,b

a,b

451

21


2.5. AQUIVALENZ
VON DEAS UND NEAS

q0

q0

q1
b

q0

q2

455
456
457
458
459
460
461

q1
a

q1

q4
a

q4

a
b
b
a
a

{q0}
{q0,q1}
{q0, q1}
{q0,q2}
{q0,q3}
{q0, q1, q4}
{q0, q1, q4}

Beginnend beim Startzustand q0 betrachten wir f


ur jeden erreichbaren Zustand, welche Zust
ande mit welchem Eingabesymbol im folgenden Schritt erreichbar sind. Alle Zust
ande, die von einem Zustand aus unter einem Eingabesymbol erreicht werden
k
onnen, werden hierbei zu einem einzelnen Zustand zusammengefasst. Erreichen wir
beispielsweise von q0 aus mit a den Zustand q0 oder den Zustand q1 , bezeichnen wir
f
ur den deterministischen Automaten den von q0 mit a erreichten Zustand als {q0 , q1 }.
Um die von {q0 , q1 } erreichbaren Zustande zu ermitteln, m
ussen sowohl die Zustande,
die von q0 aus erreichbar sind, wie auch jene von q1 aus ber
ucksichtigt werden. Es ergibt

sich die folgende Tabelle f


ur die Ubergangsrelation
D des aquivalenten deterministischen Automaten:

DR
AF

462

q3

454

q0

q0

q1

q0
a

q0

463

D
{q0 }
{q0 , q1 }
{q0 , q2 }
{q0 , q3 }
{q0 , q1 , q4 }
{q0 , q2 , q4 }
{q0 , q3 , q4 }
{q0 , q4 }

464

465

a
{q0 , q1 }
{q0 , q1 }
{q0 , q1 }
{q0 , q1 , q4 }
{q0 , q1 , q4 }
{q0 , q1 , q4 }
{q0 , q1 , q4 }
{q0 , q1 , q4 }

b
{q0 }
{q0 , q2 }
{q0 , q3 }
{q0 }
{q0 , q2 , q4 }
{q0 , q3 q4 }
{q0 , q4 }
{q0 , q4 }

Die Endzust
ande des deterministischen Automaten sind jene Zustande, die die Endzust
ande des nichtdeterministischen Automaten (hier: q4 ) enthalten.
Der entstehende deterministische Automat ist somit gegeben als
AD = ({a, b},

{{q0 }, {q0 , q1 }, {q0 , q2 }, {q0 , q3 }, {q0 , q1 , q4 }, {q0 , q2 , q4 }, {q0 , q3 , q4 }, {q0 , q4 }},


D , {q0 }, {{q0 , q4 }, {q0 , q1 , q4 }, {q0 , q2 , q4 }, {q0 , q3 , q4 }})

Entwurfsfassung vom 27. September 2016

22

2.6. NEAS MIT -UBERG


ANGEN

{q0 }

{q0 , q1 }

{q0 , q2 }

{q0 , q3 }

{q0 , q1 , q4 }

DR
AF

{q0 , q4 }

{q0 , q2 , q4 }

{q0 , q3 , q4 }

466

467

Somit gilt folgendes

468

Lemma 2.44: L(DEA ) = L(NEA ) L(REG )

469

2.6

470

471
472

NEAs mit

-Uberg
angen

NEAs mit -Uberg


angen

-Uberg
ange sind spontane Zustandsver
anderungen, die unabhangig vom Zeichen unter
dem Lesekopf stattfinden und die Position des Lesekopfs unverandert lassen. Zu jedem

Zeitpunkt k
onnen beliebig viele -Uberg
ange stattfinden.
Definition 2.45: Ein -erweiterter NEA ist ein Tupel M = (, Q, , Q0 , F ), dessen Komponenten Q, , Q0 und F wie bei einem NEA definiert sind und dessen

Ubergangsfunktion
eine Funktion des Typs
: Q ( {}) 2Q

473

ist.

474

Beispiel 2.46: Ein Beispiel f


ur einen -erweiterten NEA ist

Entwurfsfassung vom 27. September 2016

23

2.6. NEAS MIT -UBERG


ANGEN

q0

q1

q2
c

Wir formalisieren das Verhalten -erweiterter NEAs durch die Erweiterung der Ubergangsfunktion zu einer Abbildung
: 2Q 2Q .
Sei T Q. Wie in der Mathematik oft u
blich verallgemeinern wir die Abbildung auf
Mengen und setzen
[
(T, ) =
(p, ).

pT

Zun
achst definieren wir den -Abschluss (T ). Dieser enthalt genau diejenigen Zustande,

die von T durch beliebig viele (0 oder mehrere) -Uberg


ange erreicht werden konnen.
[
(T ) =
i (T ), wobei 0 (T ) = T und i+1 (T ) = i (T ) (i (T ), ).
i0

DR
AF

i (T ) ist die Menge aller Zustande q Q, die durch hochstens i -Uberg


ange von
einem Zustand p T erreichbar sind. Wir definieren nun
[
(T, ) = (T ), (T, ax) =
( (q, a), x ) ,
q(T )

475

wobei a und x .
Es gilt q (T, a) genau dann, wenn es einen Zustand p T gibt, von dem der Auto

mat durch beliebig viele (0 oder mehrere) -Uberg


ange, gefolgt von einem a-Ubergang

und beliebig vielen -Ubergangen, in den Zustand q wechseln kann. Weiter gilt
q (T, a1 . . . an )

476

genau dann, wenn es eine Folge q0 , q1 , . . . , qn von Zustanden gibt, so dass

477

q0 T und

478

qi+1 ({qi }, ai+1 ), i = 0, 1, . . . , n.

Die durch einen -erweiterten NEA M akzeptierte Sprache ist

L(M ) = {w : (Q0 , w) F 6= }.

479
480

481
482

Offenbar kann jeder NEA (und damit auch jeder DEA) als -erweiterter NEA interpretiert werden. Das folgende Lemma belegt, dass auch die Umkehrung gilt:
Lemma 2.47: Zu jedem -erweiterten NEA gibt es einen NEA M 0 mit L(M ) =
L(M 0 ).
Beweis. Sei M = (, Q, , Q0 , F ) ein -erweiterter NEA. Wir definieren einen NEA
M 0 = (, Q, 0 , (Q0 ), F )

wie folgt:
0 (q, a) = ({q}, a)
483

f
ur alle q Q und a .

Entwurfsfassung vom 27. September 2016

24

2.7. KONSTRUKTION ENDLICHER AUTOMATEN

Betrachtet man die erweiterte Ubergangsrelation


beider Automaten, so erkennt man,
dass diese bei beiden Automaten gleich ist:
[
0 (T, av) =
0 ( 0 (q, a), v)
(Def. 0 )
qT

0 ( ({q}, a), v)

(Def. 0 )

(Def. )

qT

0 (

qT

s({q})

((q, a), ), v)

0 ( ((q, a), ), v)

(Bem. 2.37)

q(T )

0 ( ((q, a)), v)

(Def. (T, ))

q(T )

wenn wir nun zus


azlich definieren:
0 (T, ) = (T )
484
485

(was in der alten Definition bereits enthalten war), dann konnen wir auf das zweite
(. . .) verzichten und erhalten
0 (T, )

(T )
[

DR
AF

486

(T, av)

487

0 ( (q, a))

q(T )

491

Dies ist identisch mit der Definition von . Da die Endzustandsmenge gleich ist, sind
alle akzeptierenden L
aufe von M 0 auch akzeptierende Laufe von M . Da zusatzlich als
Startzustandsmenge (Q0 ) gewahlt wurde gilt dies auch umgekehrt.
Also gilt: L(M ) = L(M 0 ).

492

2.7

488

489

490

Vereinigung von
Automaten M1 M2

Konstruktion endlicher Automaten

Lemma 2.48: F
ur zwei endliche Automaten M1 = (, Q1 , 1 , Q0,1 , F1 ) und M2 =
(, Q2 , 2 , Q0,2 , F2 ) mit disjunkten Zustandsmengen Q1 Q2 = konnen wird den
Automaten M1 M2 definieren, der die Vereinigung der akzeptierten Sprachen von M1
und M2 akzeptiert.
M1 M2 = (, Q1 Q2 , , Q01 Q02 , F1 F2 ),

wobei

(q, a) =

493

494
495

496
497

Beweis. Zu zeigen: L(M1 ) L(M2 ) = L(M1 M2 )

L(M1 ) L(M2 ) L(M1 M2 ) :


Sei w = a1 . . . an L(M1 ) L(M2 ) und q0 q1 . . . qn ein akzeptierender Lauf in M1
oder M2 , je nachdem aus welcher Sprache w ist. Sei o.B.d.A. w L(M1 ), dann
ist q0 Q01 und qn F1 und qi Q1 mit qi = 1 (qi1 , ai ), i = 1, . . . , n.
Da


(q, a) =

498
499

500
501
502

1 (q, a) : falls q Q1
2 (q, a) : sonst.

1 (q, a) : falls q Q1
2 (q, a) : sonst.

und q0 = q01 Q01 Q02 ist q0 q1 . . . qn auch ein akzeptierender Lauf in M1 M2


und damit w L(M1 M2 ).
L(M1 ) L(M2 ) L(M1 M2 ) :
Sei w = a1 . . . an L(M1 M2 ) und q0 q1 . . . qn ein akzeptierender Lauf. Es gilt:
q0 Q01 Q02 , qi = (qi1 , ai ) und qn F1 F2 .
Entwurfsfassung vom 27. September 2016

25

2.7. KONSTRUKTION ENDLICHER AUTOMATEN

Da die Zustandsmengen disjunkt sind, ist q0 nur in einer der beiden Anfangszustandsmengen. Sei k {1, 2}, so dass q0 Q0k , dann gilt aufgrund der Definition von , dass qi = k (qi1 , ai ) und mithin, dass alle qi Qk . Da zusatzlich
qn F1 F2 muss gelten qn Fk . Also ist q0 q1 . . . qn ein akzeptierender Lauf in
Mk und damit w L(M1 ) L(M2 ).

503
504
505
506
507

508

509

Beispiel 2.49: Wir bilden f


ur zwei Automaten M1 , M2
b
M1

a
a

q0

q1

s0

M2

s1

s2

510

den Vereinigungsautomaten anschaulich durch Kombination wie folgt:


a
a
q
q1
M1 M2
0

511

DR
AF

s0

s1

s2

512

Produktautomat
M1 M2

Lemma 2.50: F
ur zwei endliche Automaten

M1 = (, Q1 , 1 , Q01 , F1 ) und M2 = (, Q2 , 2 , Q02 , F2 )

definieren wir den sogenannten Produktautomat M1 M2 . Dieser simuliert die synchrone


Bearbeitung des Wortes w durch M1 und M2 . Das Wort wird akzeptiert wenn beide
Automaten das Wort akzeptieren.
M1 M2 = (, Q1 Q2 , , Q01 Q02 , F1 F2 ),

wobei

(hq1 , q2 i, a) = {hp1 , p2 i : p1 1 (q1 , a), p2 2 (q2 , a)}.

Es gilt:

L(M1 M2 ) = L(M1 ) L(M2 ).

F
ur zwei DEAs M1 , M2 entsteht so ein DEA, mit der Ubergangsfunktion

h1 (q1 , a), 2 (q2 , a)i : falls 1 (q1 , a) 6= und 2 (q2 , a) 6=
(hq1 , q2 i, a) =

: sonst.

515

Beweis. Sei w L(M1 ) L(M2 ) und q01 q11 . . . qn1 , q02 q12 . . . qn2 die zugehorigen akzeptierenden L
aufe. Dann ist (q01 , q02 ) . . . (qn1 qn2 ) ein akzeptierender Lauf in M1 M2
und umgekehrt.

516

Beispiel 2.51: Wir bilden f


ur zwei Automaten M1 , M2

513

514

b
M1

517

q0

a
a

q1

M2

s0

Entwurfsfassung vom 27. September 2016

s1
a

s2
a

26

2.7. KONSTRUKTION ENDLICHER AUTOMATEN

den Produktautomaten anschaulich wie folgt:

518

M1 M2

< q0 , s0 >

< q1 , s0 >

a
a

< q0 , s1 >

< q1 , s1 >

a
a

< q0 , s2 >

< q1 , s2 >

519

Lemma 2.52: Sei M = (, Q, , q0 , F ) ein DEA mit einer totalen Ubergangsfunktion.


Wir konstruieren einen DEA f
ur die Komplementsprache, indem wir die Endzustandsmenge komplementieren.
M = (, Q, , q0 , Q \ F )

Komplement M

DR
AF

Es gilt:

L(M ) = L(M ).

520

521

522

523

524

525
526

527
528

529

530

Die Annahme, dass der vorliegende DEA eine totale Ubergangsfunktion


hat ist notwendig, weil alle W
orter f
ur die M eine vorzeitig abgebrochene Berechnung hat auch in
M eine vorzeitig abgebrochene Berechnung haben und damit in M verworfen w
urden,
obwohl sie akzeptiert werden m
ussten.

Beweis. Sei w L(M ), w = a1 . . . an und q0 . . . qn der akzeptierende Lauf in M . Dann


ist q0 . . . qn ein Lauf f
ur w in M (weil sich Qo und nicht geandert haben) und dieser
ist verwerfernd (weil die Endzustandsmenge komplementiert wurde).
Sei w 6 L(M ), w = a1 . . . an und q0 . . . qn der verwerfende Lauf in M . Dann ist q0 . . . qn
ein Lauf f
ur w in M und dieser ist akzeptierend.
Beispiel 2.53: Wir bilden f
ur den Automaten M den Komplementautomaten M
anschaulich wie folgt:
a

q0

q0
a

531

Vereinigung f
ur
DEAs

532
533
534
535
536

q1

b
a

q1

q2

q2
a

Bemerkung 2.54: Liegen zwei DEAs M1 , M2 vor, f


ur die ein DEA f
ur die Sprache
L(M1 ) L(M2 ) erstellt werden soll, so konnte man zwar den Operator anwenden
und dann die Potenzmengenkonstruktion durchf
uhren; jedoch gibt es einen einfacheren
Weg, mit dem die exponentiellen Kosten f
ur die Potenzmengenkonstruktion umgangen
werden k
onnen.

Entwurfsfassung vom 27. September 2016

27

2.7. KONSTRUKTION ENDLICHER AUTOMATEN

Hierzu wenden wir die de Morgansche Regel


L(M1 ) L(M2 ) = L(M1 ) L(M2 )
an, die es erlaubt, die Vereinigung auf die Komplement- und Durchschnittsbildung
zur
uckzuf
uhren. Somit erhalten wir folgenden DEA:
M = M1 M2
Konkatenation
M1 M2

Lemma 2.55: Seien M1 = (, Q1 , 1 , Q01 , F1 ) und M2 = (, Q2 , 2 , Q02 , F2 ) zwei endliche Automaten mit disjunkten Zustandsmengen. Wir konstruieren einen -erweiterten
NEA
M1 M2 = (Q1 Q2 , , , Q01 , F2 ).
Dieser verbindet die Endzustande von M1 mit den Anfangszustanden von M2 durch

einen -Ubergang.
Sei a {}, q Q1 Q2 :

= 1 2 {(qF , , q02 ) | qF F1 , q02 Q02 }


Es gilt: L(M1 M2 ) = L(M1 ) L(M2 ).

538

Beweis. Zur Ubung.

539

Beispiel 2.56: Wir bilden f


ur zwei Automaten M1 , M2

DR
AF

537

M1

542

q0

q1

M2

s0
a

540

541

a
a

b
b

s1

s2

die Konkatenation M1 M2 durch das Hinzuf


ugen von -Kanten von allen Endzustanden
von M1 zu allen Startzustanden von M2 . Anschaulich ergibt sich:

M1 M2

543

q0

a
a

q1

s0

b
s1
a

s2
a

Kleeneabschluss M 544 Lemma 2.57: Sei M = (, Q, , Q0 , F ) ein NEA mit oder ohne -Uberg
angen. Sei
545
q
/ Q.
546
Wir definieren einen -erweiterten NEA
M = (, Q {q }, , Q0 {q }, F {q }),
547
548

dessen Ubergangsfunktion
die Endzustande u
mit den Anfangsber einen -Ubergang
zust
anden verbindet.

Falls a und q Q, so ist (q, a) = (q, a). Die -Uberg


ange der Zustande q Q
sind durch

Q0 (q, ) : falls q F
(q, ) =
(q, )
: falls q Q \ F

gegeben. Aquivalent
l
asst sich auch definieren als:
= {(q, , q 0 ) | q F, q 0 Q0 }.
Entwurfsfassung vom 27. September 2016

28

2.8. AQUIVALENZ
VON ENDLICHEN AUTOMATEN, REGULAREN

GRAMMATIKEN UND REGULAREN


AUSDRUCKEN
Der Spezialzustand q wird benotigt, um sicherzustellen, dass das leere Wort akzeptiert

wird. Wir definieren q als einen Zustand ohne Uberg


ange; also (q , a) = f
ur alle
a {}. Es ist leicht zu sehen, dass
L (M ) = L(M ) .
549

Beweis. Zur Ubung.

550

Beispiel 2.58: Wir bilden f


ur einen Automaten M
M

551

552

q0

q1

q2
a

den Kleeneabschluss M dieses Automaten anschaulich wie folgt:

q0

q1

q2
a

DR
AF

553

554

556

Satz 2.59: Die Klasse der regularen Sprachen ist unter Vereinigung, Konkatenation,
Kleeneabschluss, Komplementbildung und Durchschnitt abgeschlossen.

557

2.8

555

558

559
560
561

L(REG )

L(NEA )

Die Ergebnisse dieses Abschnitts liefern folgenden Satz:

562

563

564

565

Aquivalenz
von endlichen Automaten, regul
aren
Grammatiken und regul
aren Ausdru
cken

Die Aussage, dass es zu jedem DEA M eine aquivalente regulare Grammatik G (mit
L(G) = L(M )) gibt, haben wir bereits in Lemma 2.22 bewiesen. Nun zeigen wir, dass
umgekehrt gilt:
Lemma 2.60: Zu jeder regularen Grammatik G gibt es einen NEA M mit L(G) =
L(M ).

Beweis. Sei G = (, V, P, S) eine -freie regulare Grammatik (vgl. Bemerkung 2.6).


Wir definieren einen NEA M wie folgt.

567

F
ur die Zustandsmenge wird die Variablenmenge von G um ein Symbol erweitert:
Q = V {qF }, wobei qF
/ V.

568

Als Anfangszustandsmenge wahlen wir Q0 = {S}.

566

Die Endzustandsmenge ist abhangig davon, ob L(G).



{S, qF } : falls S
F =
{qF }
: sonst.
569

ist gegeben durch:

570

B (A, a)

571

qF (A, a)

572
573
574

gdw. A aB
gdw. A a

f
ur A, B V und a .
Zus
atzlich gilt: (qF , a) = f
ur alle a .
Dann gilt f
ur alle w = a1 a2 . . . an + :
Entwurfsfassung vom 27. September 2016

29

2.8. AQUIVALENZ
VON ENDLICHEN AUTOMATEN, REGULAREN

GRAMMATIKEN UND REGULAREN


AUSDRUCKEN
575

gdw.
gdw.
gdw.
gdw.
gdw.
577

Weiter gilt:
L(G)

578

579

580
581

gdw. S

gdw. S F

gdw. L(M ).

Es folgt L(G) = L(M ).


Beispiel 2.61: Das Produktionssystem einer Grammatik G sei gegenben durch P =
{S 0 | 1Z, Z 0Z | 1Z | }, wobei S das Startsymbol bezeichnet.

576

w L(M )
es existiert ein akzeptierender Lauf A0 , A1 , . . . , An von M f
ur w
es gibt eine Folge A0 , A1 , . . . , An1 von Variablen mit A0 = S, qF (An1 , an )
und Ai+1 (Ai , ai+1 ), i = 0, . . . , n 2
es existieren A0 , . . . , An1 V mit A0 = S, An1 an
und Ai ai+1 Ai+1 , i = 0, . . . , n 2,
es existiert eine Ableitung S a1 a2 . . . an = w
w L(G)

582

-frei: P 0 = {S 0 | 1Z | 1, Z 0Z | 1Z | 0 | 1}

583

Konstruktion eines endlichen Automaten:

0,1

DR
AF

0,1

0,1

qF

584

L(REXP )

L(NEA )

585

586

587

588

Lemma 2.62: Zu jedem regularen Ausdruck gibt es einen NEA M mit L() =
L(M ).

Beweis. F
ur die elementaren regularen Ausdr
ucke konnen wir Automaten angeben:
=:

q0

589

590

=:

q0

tot

591

592

=a:
a 6= a0

Ma

q0

q1

a0

tot

a0

593

594
595
596
597

In Abschnitt 2.7 (Seite 25) haben wir gezeigt, dass wir Automaten konstruieren konnen,
die die Vereinigung, die Konkatenation und den Kleene-Abschluss der Sprache von
gegebenen Automaten akzeptieren. Damit konnen wir f
ur jeden gegebenen regularen
Ausdruck einen entsprechenden Automaten konstruieren.
Entwurfsfassung vom 27. September 2016

30

2.8. AQUIVALENZ
VON ENDLICHEN AUTOMATEN, REGULAREN

GRAMMATIKEN UND REGULAREN


AUSDRUCKEN
L(DEA )

L(REXP )

599

Lemma 2.63: Zu jedem DEA M gibt es einen regularen Ausdruck mit L() =
L(M ).

600

Beispiel 2.64: Gegeben sei der folgende endliche Automat.

598

q1

q2

0, 1

1
q3

0, 1

q4

0, 1

601

Informell ist
Lki,j = {w | M kommt von qi nach qj mit Wort w und besucht nur Zustande mit Index k}

604
605
606
607
608

DR
AF

609

Beispielsweise ist
L03,3 = {0, 1, },
L21,4 = {00, 01} ,
L31,4 = {00, 01} ,
L21,3 = {1},
L31,3 = {1w | w },
L11,4 = {},
L32,4 = {0, 1}

602
603

610

611

Beweis. Gegeben sei ein DEA M = (, Q, , q1 , F ). Wir konstruieren induktiv einen


regul
aren Ausdruck, der die gleiche Sprache erzeugt, die M akzeptiert.
Sei Q = {q1 , . . . , qm } die Menge der (paarweise verschiedenen) Zustande von M und
F = {qr , . . . , qm }1 . F
ur ein Wort w = a1 a2 . . . an sei
run i (w)

612

613

die Folge von Zust


anden, die M beginnend mit dem Zustand qi f
ur das Wort w
durchl
auft. Falls (qi , w) 6= , so ist run i (w) eine Zustandsfolge p0 p1 . . . pn , wobei

614

p0 = qi und

615

pl+1 = (pl , al+1 ), l = 0, 1, . . . , n 1.

616
617

618

619

620

621

622

Wir konstruieren nun eine Familie von Sprachen Lki,j , die jene Worter w = a1 a2 . . . an
enthalten, f
ur die gilt:
(qi , w) = qj und

run i (w) = p0 p1 . . . pn ,
wobei p0 = qi und p1 . . . pn1 {q1 , q2 , . . . , qk } sowie pn = qj

Lki,j umfasst also genau diejenigen Worter w, f


ur die der DEA M beginnend im Zustand
qi in qj endet und dazwischen nur Zustande aus der Menge {q1 , . . . , qk } durchlauft.
Es gilt f
ur 1 i 6= j n:
L0i,j
L0i,i

=
=

{a : (qi , a) = qj },
{} {a : (qi , a) = qi }

F
ur k = 0, 1, . . . , n 1 gilt:
Lk+1
= Lki,j Lki,k+1 Lkk+1,k+1
i,j

Lkk+1,j

k
Nun k
onnen wir induktiv regulare Ausdr
ucke i,j
mit

k
Lki,j = L i,j
.
623
624

definieren:
0
F
ur L(i,j
) = L0i,j , i, j = 1, . . . , n gilt:
1 D.h.

der Startzustand ist der erste und die Endzust


ande sind die letzten Zust
ande in Q.

Entwurfsfassung vom 27. September 2016

31

2.9. MINIMIERUNG DETERMINISTISCHER ENDLICHER AUTOMATEN

Ist L0i,j = {b1 , b2 , . . . , bl } =


6 und i 6= j, so gilt:
0
i,j
= b1 |b2 | |bl

Ist i = j und L0i,j wie oben, dann gilt:


0
i,j
= |b1 |b2 | |bl

625

0
Ist L0i,j = und i 6= j, so setzen wir i,j
= .

F
ur k = 0, 1, . . . , n 1 setzen wir
k+1
k
k
k
i,j
= i,j
| i,k+1
k+1,k+1

k
k+1,j

Da F = {qr , . . . , qm } gilt:
m
[

Ln1,j = Ln1,r . . . Ln1,m

L(M ) =

j=r

n
n
Somit ist = 1,r
| |1,m
ein regularer Ausdruck mit L() = L(M ).

627

Beispiel 2.65: F
ur den Automaten M

DR
AF

626

0, 1

630

631

632
633

634

635

636

637

638

639

Isomorphie

640
641

2.9

Minimierung deterministischer endlicher Automaten

Definition 2.66: Zwei DEAs M1 = (, Q1 , 1 , q01 , F1 ), M2 = (, Q2 , 2 , q02 , F2 ) heien isomorph, wenn es eine bijektive Abbildung f : Q1 Q2 gibt, so dass
(i) q02 = f (q01 ),

643

(ii) qf 2 = f (qf 1 )

645

ergibt sich:
0
L011 = {}
11
=
0
0
L12 = {1, 0} 12 = 0 | 1
0
L021 = {0}
21
=0
0
0
L22 = {1, } 22 = 1 |
Und damit
1
0
0
0
0
11
= 11
| 11
(11
) 11
= | =
1
0
0
0
0
12 = 12 | 11 (11 ) 12 = (0 | 1) | (0 | 1) = (0 | 1) | (0 | 1) = 0 | 1
1
0
0
0
0
(11
) 11
= 0 | 0 = 0 | 0 = 0
21
= 21
| 21
1
0
0
0
0
22 = 22 | 21 (11 ) 12 = (1 | ) | 0 (0 | 1) = (1 | ) | 0 (0 | 1)
2
Nun ist = 12
, sodass nur ein Ausdruck 2 berechnet werden muss:
2
1
1
1
1
12
= 12
| 12
(22
) 22
= (0 | 1) | (0 | 1) ((1 | ) | 0 (0 | 1)) ((1 | ) | 0 (0 | 1))

642

644

q2

628

629

q1

f
ur alle qf 1 F1 und qf 2 F2

(iii) 2 (f (q), a) = f (1 (q, a))

f
ur alle q Q1 und a

Die Abbildung f wird Isomorphismus genannt.

Entwurfsfassung vom 27. September 2016

32

2.9. MINIMIERUNG DETERMINISTISCHER ENDLICHER AUTOMATEN

646
647

Eigenschaft (iii) kann man sich wie folgt mit einem kommutativen Diagramm veranschaulichen:
Q1

Q1

(f, id)
Q2

f
2

Q2

Abbildung 2.1: Dieses Diagramm kommutiert, wenn M1 und M2 isomorph sind. f ist
der betreffende Isomorphismus. id steht f
ur die identische Abbildung id(x) = x.
648

Offensichtlich gilt:

649

Lemma 2.67: Sind die DEAs M1 und M2 isomorph dann gilt L(M1 ) = L(M2 ).

653

(ohne Beweis). N
aheres hierzu siehe z.B. [AB02, S.260ff].

651

652

Satz 2.68: F
ur jede regulare Sprache L gibt es genau einen bis auf Isomorphie ein
deutigen minimalen deterministischen Automaten ML mit totaler Ubergangsfunktion,
der L akzeptiert.

650

665

Der Minimierungs-Algorithmus setzt voraus, dass bereits ein deterministischer Auto


mat M mit L(M ) = L mit totaler Ubergangsfunktion
vorliegt. Der Algorithmus kon
struiert nun sukzessive eine Aquivalenzrelation
R paarweise aquivalenter Zustande. Die

Zust
ande des Automaten werden dazu in Aquivalenzklassen
unterteilt, so dass jeweils
Zust
ande zusammengefasst werden, die sich gleich verhalten. Initial ist dies eine Einteilung in nur zwei Klassen (Endzustande und Nicht-Endzustande). Durch schrittweise
Verfeinerung werden die Klassen solange sukzessive aufgeteilt, bis der resultierende Automat nicht weiter verfeinert werden muss und die akzeptierte Sprache die Sprache L
ist. Hintergr
unde hierzu finden Sie z.B. in [AB02, VW11].

Initial ist R0 die Aquivalenzrelation,


die alle Endzustande und alle Zustande in Q \ F
in zwei Klassen trennt. Im (i + 1)-ten Iterationsschritt suchen wir in der Relation Ri
ein Zustandspaar (q, q 0 ), so dass:

666

((q, a), (q 0 , a))


/ Ri f
ur ein a ,

DR
AF

654
655
656
657
658
659
660

661
662

663
664

Ri+1 wird dann definiert als:

Ri+1 := Ri \ {(q, q 0 ), (q 0 , q)}

667

668

669

670
671

672

673

674
675

Wenn es kein solches Paar (q, q 0 ) Ri gibt, terminiert das Verfahren2 und wir bezeichnen das Ergebnis mit R.
Der folgende Algorithmus wird in der Literatur haufig als table filling algorithm bezeichnet.
Er arbeitet mit einer Tabelle, welche die Zustandspaare verwaltet. Aufgrund der Sym
metrieeigenschaft von Aquivalenzrelationen
kann man die Paare als ungeordnet ansehen
und nur einmal in der Tabelle ablegen.
In der Tabelle ist jedes Zustandspaar (q, q 0 ) markiert, f
ur das bereits nachgewiesen ist,
dass
R((q, a), (q 0 , a))
Alle u
ur die
brigen Paare sind unmarkiert. R besteht genau aus allen Paaren (q, q 0 ), f
nach Terminierung des Algorithmus kein Eintrag in der Tabelle vorhanden ist.
Wenn wir das Ergebnis des Algorithmus mit R bezeichnen, dann sind die Elemente
von R also Mengen
aquivalenter Zustande.
R = {A1 , . . . , Ak }
2 Bei

Terminierung gilt Ri = , vgl. [AB02, S.260-267]

Entwurfsfassung vom 27. September 2016

33

2.9. MINIMIERUNG DETERMINISTISCHER ENDLICHER AUTOMATEN

Algorithmus 1 Table Filling Algorithm


Erstelle eine Tabelle f
ur alle ungeordneten Zustandspaare (q, q 0 ).
Markiere Zustandspaare (q, q 0 ) mit q F und q 0
/ F (oder umgekehrt)
while es gibt unmarkiertes Paar (q, q 0 ) und a , so dass ((q, a), (q 0 , a)) markiert
ist do
markiere q, q 0
end while
Bilde maximale Mengen paarweise unmarkierter Zustande.

Das heit, die Ai sind Aquivalenzklassen


von Zustanden q Q. Eine u
bliche Schreibweise hierf
ur ist:
[q]R = {q 0 Q | q 0 Rq}
676

Auf dieser Basis k


onnen wir den Minimalautomaten ML (vgl. Satz 2.68) definieren
ML

(, R, L , A0L , FL ),

678

A0L

[q0 ]R ,

679

FL

680

L (A, a)

677

= {Ai | Ai F },
=

[(q, a)]R f
ur ein beliebiges q A.

DR
AF

Bemerkung 2.69: Der skizzierte Minimierungsalgorithmus hat die Laufzeit


O(|Q|2 ||)

681

682

Beispiel 2.70: Betrachen wir das Transitionsdiagramm eines Automaten M :


0

q0

q1

q2

q4

0, 1

q3

683

684

Eine Minimierung mit dem Table Filling Algorithmus ergibt die folgende Tabelle:
q1
q2
q3
q4

685
686

687
688

689
690
691
692
693

?
?
q0

?
q1

?
?
q2

?
q3

1. Zun
achst wurden hierbei Paare von End- und Nichtendzustanden markiert, d.h.
jede Zelle in der Zeile von q4 erhalt eine Markierung.
2. Anschlieend werden die verbleibenden Zustande paarweise u
uft. Hierbei
berpr
ergibt sich:
(q0 , q1 ) : ((q0 , 0), (q1 , 0)) = (q1 , q4 ), dieser Zustand ist bereits markiert (d.h. q1 und
q4 sind nicht
aquivalent), sodass auch das betrachtete Paar (q0 , q1 ) markiert
wird.
(q0 , q2 ) : ((q0 , 0), (q2 , 0)) = (q1 , q3 ), dieser Zustand ist bislang nicht markiert (d.h.
q1 und q4 sind moglicherweise aquivalent), sodass auch das betrachtete Paar
Entwurfsfassung vom 27. September 2016

34

2.10. ABLEITUNG VON AUTOMATEN AUS SPRACHDEFINITIONEN UND


AUTOMATENKORREKTHEIT

(q0 , q1 ) noch nicht markiert wird und zunachst weitere Uberg


ange betrachtet werden; ((q0 , 1), (q2 , 1)) = (q2 , q2 ), dieser Zustand ist stets aquivalent,
sodass (q0 , q2 ) weiterhin noch nicht markiert werden kann.

694
695
696

698
699
700
701
702
703
704
705

706

(q0 , q3 ) : ((q0 , 0), (q3 , 0)) = (q1 , q4 ), dieser Zustand ist bereits markiert, sodass auch
das betrachtete Paar (q0 , q3 ) markiert wird.
(q1 , q2 ) : ((q1 , 0), (q2 , 0)) = (q4 , q3 ), dieser Zustand ist bereits markiert, sodass auch
das betrachtete Paar (q1 , q2 ) markiert wird.
(q1 , q3 ) : ((q1 , 0), (q3 , 0)) = (q4 , q4 ), dieser Zustand ist nicht markiert; ((q1 , 1), (q3 , 1)) =
(q0 , q2 ), dieser Zustand ist ebenfalls nicht markiert, sodass (q1 , q3 ) noch nicht
markiert werden kann.
(q2 , q3 ) : ((q2 , 0), (q3 , 0)) = (q3 , q4 ), dieser Zustand ist bereits markiert, sodass auch
das betrachtete Paar (q2 , q3 ) markiert wird.
3. Beginne f
ur noch nicht markierte Felder erneut:
Es werden erneut (q0 , q2 ) und (q1 , q3 ) untersucht (wie oben). Beide verweisen

jedoch weiterhin mit allen Uberg


angen auf nicht markierte Zustande, sodass
keine weitere Markierung vorgenommen wird.

707
708
709

710

697

4. Der Algorithmus terminiert.

DR
AF

Aus den unmarkierten Zellen lasst sich erkennen, dass q0 aquivalent zu q2 , und q1
aquivalent zu q3 ist. Der minimale Automat ist damit definiert durch

Amin = ({0, 1}, {{q0 , q2 }, {q1 , q3 }, {q4 }, , {q0 , q2 }, {{q4 }}}),

711

wobei wir u
ber das folgende Transitionsdiagramm angeben:

{q0 , q2 }

{q1 , q3 }

{q4 }

0, 1

712

713

714

715

716

717

718

Sprachdefinition
lexical analyzer

2.10

Ableitung von Automaten aus Sprachdefinitionen und Automatenkorrektheit

In diesem Abschnitt betrachten wir zwei Beispiele. Zum einen, wie man mit Hilfe der
bisher eingef
uhrten Techniken einen lexical analyzer aus einer Sprachdefinition ableiten kann. Zum anderen, wie es moglich ist, automatisierbar zu beweisen, dass zwei
Automaten die gleiche Sprache akzeptieren.

Beispiel 2.71: Wir betrachten die folgende Sprache:

L = {an bam | n N0 , m N},


f
ur die wir zun
achst einen regularen Ausdruck herleiten, der diese erzeugt:
L = {an bam | n N0 , m N}
= {an | n N0 } {b} {am | m N}
= L(a) L(b) L(a)+
= L(a) L(b) L(a) L(a)
= L(a ) L(b) L(a) L(a )
= L(a baa )

Entwurfsfassung vom 27. September 2016

35

2.10. ABLEITUNG VON AUTOMATEN AUS SPRACHDEFINITIONEN UND


AUTOMATENKORREKTHEIT
719
720
721
722

Nachdem wir herausgefunden haben, dass die Sprache vom regularen Ausruck =
a baa erzeugt wird, konvertieren wir diesen nach dem bereits bekannten Verfahren in
einen -erweiterten Automaten, der L akzeptiert. Hierzu konstruieren wir zunachst die
Automaten f
ur die elementaren Ausdr
ucke a und b:
Ma

q0

q1

p0

Mb

a
a, b

723

725

a, b

q2

p2

a, b

a, b

Aus den elementaren Automaten konnen wir nun zunachst den Automaten f
ur den
Teil-Ausdruck a konstruieren:

Ma

q0
b

724

p1

q1

a, b

DR
AF

q2

a, b
q

726

727

Nun k
onnen wir diesem Automaten Mb nachschalten und erhalten:

Ma Mb

q0

q1

p0

a, b

q2

a, b

p1
a, b

p2

a, b

728

729

Insgesamt ergibt sich:

Entwurfsfassung vom 27. September 2016

36

2.10. ABLEITUNG VON AUTOMATEN AUS SPRACHDEFINITIONEN UND


AUTOMATENKORREKTHEIT

Ma Mb Ma Ma

q0

q1

p0

p1
a, b

b
a

a, b
q2

p2

a, b

a, b

t1

t0

b
t2

r0

a, b

b
r2

a, b

r1

a, b
t

DR
AF

730

a, b

731

732

733

Dieser Automat ist ein -erweiterter endlicher Automat mit 14 Zustanden. Um von
diesem Automaten zu einem lexical analyzer zu gelangen, sind die folgenden Schritte
notwendig:

734

-frei machen NEA

735

Potenzmengenkonstruktion DEA

736

Minimierung ML

737

738

739

740

741

742

Die Minimierung ist insbesondere deshalb notwendig, weil bei der Potenzmengenkonstruktion ein Automat mit bis zu 214 Zustanden entstehen kann.

Um zu pr
ufen, ob zwei Automaten die gleiche Sprache erzeugen, konnte man diese
zun
achst Minimieren und danach einem Isomorphietest unterziehen. Da es sich beim
Isomorphietest f
ur Graphen um ein schwieriges Problem handelt, f
ur das keine effizienten Algorithmen bekannt sind, suchen wir nach einem anderen Weg.
Um zu pr
ufen, ob L(M1 ) = L(M1 ) gilt, konnen wir auch pr
ufen, ob L(M1 ) L(M2 )
und L(M2 ) L(M2 ) gilt. Jede dieser Teilmengenbeziehungen kann wie folgt effizient
bestimmt werden:
L(M1 ) L(M2 ) gdw. L(M1 ) L(M2 ) =

Aquivalenztest
f
ur
Automaten

743

Beispiel 2.72: Dieses Vorgehen veranschaulichen wir uns an folgendem Beispiel:

M1

q0

M2

744

745

gdw. L(M1 M2 ) =

p0

M2

p0

q1

p1

p1

0, 1

0, 1

0, 1

Nun bilden wir das Kreuzprodukt M1 M2 :


Entwurfsfassung vom 27. September 2016

37

REGULARE

2.11. DAS PUMPING LEMMA FUR


SPRACHEN

(q0 , p0 )

M1 M2

(q1 , p0 )
1

(q0 , p1 )

(q1 , p1 )

0, 1

746

748
749
750
751
752
753

Man erkennt, dass der Endzustand nicht vom Anfangszustand aus erreichbar ist. Dies
kann durch eine einfache Erreichbarkeitsanalyse algorithmisch ermittelt werden (Tiefenoder Breitensuche).
Die Pr
ufung, ob umgekehrt auch L(M2 ) L(M1 ) gilt, f
uhrt zu folgendem Ergebnis:

Zun
achst m
ussen wir den Automaten M1 mit einer totalen Ubergangsfunktion
ausstatten damit der danach komplementiert werden kann (Komplementbildung setzt Totalitat
voraus).
M1

q0

M1tot

q0
1

M1tot

DR
AF

747

754

755

q0

q1

q1

q2

q1

q2

0, 1

0, 1

0, 1

0, 1

0, 1

Nun bilden wir das Kreuzprodukt M1tot M2 :


0

M1tot M2

(q0 , p0 )

(q1 , p0 )

(q0 , p1 )

(q1 , p1 )

0, 1

(q2 , p0 )

1
(q2 , p1 )

0, 1

756

760

Man erkennt leicht, dass der Endzustand (q2 , p1 ) vom Anfangszustand (q0 , p0 ) mit dem
Wort 01 erreicht werden kann (dies kann in einer Erreichbarkeitsanalyse ermittelt werden). Also ist L(M1 M2 ) 6= und L(M2 ) 6 L(M1 ).
Die beiden Automaten M1 und M2 akzeptieren also nicht die gleiche Sprache.

761

2.11

757
758

759

762
763
764
765
766

Das Pumping Lemma fu


are Sprachen
r regul

Es gibt Sprachen, die nicht regular sind. Um dies nachzuweisen nutzt man aus, dass
ein endlicher Automat einen Zustand wiederholt besuchen muss, wenn er ein Wort
akzeptiert, das mehr Buchstaben besitzt als der Automat Zustande hat.
Wenn M = (, Q, , q0 , F ), |Q| = n und x L(M ) mit einer Lange m = |x| n, dann
kann x wie folgt zerlegt werden:

Entwurfsfassung vom 27. September 2016

38

REGULARE

2.11. DAS PUMPING LEMMA FUR


SPRACHEN

Sei x = a1 a2 . . . am und sei q0 , q1 , . . . , qm der zu x gehorende Lauf von M . Wir betrachten den Anfang des Laufs
q0 q1 . . . , qn
767
768
769
770

Da dieses St
uck des Laufs bereits mehr Zustande verwendet als der Automat Zustande
hat muss es zwei Indizes geben f
ur die die Zustande gleich sind. Seien i, j die ersten
zwei Indizees f
ur die dies gilt.
Sei 0 i < j n f
ur die qi = qj gilt.
Wir zerlegen x in drei Teilworte:
x = uvw = a1 . . . ai ai+1 . . . aj aj+1 . . . am
| {z } | {z } | {z }
=u

=v

=w

Weil qi = qj wird auch das Wort:


uv k w = a1 . . . ai ai+1 . . . aj ai+1 . . . aj . . . ai+1 . . . aj aj+1 . . . am
| {z } | {z } | {z }
| {z } | {z }
=u

=v

=v

=v

=w

akzeptiert und der zugeh


orende Lauf ist:
q0 . . . qi (qi+1 . . . qj )k qj+1 . . . qm .

Satz 2.73: F
ur jede regulare Sprache L gibt es eine ganze Zahl n 1, so dass
es f
ur jedes Wort x L mit |x| n eine Zerlegung gibt mit:

Pumping Lemma
f
ur regul
are
Sprachen

|v| 1,

x = uvw,

|uv| n,

DR
AF

so dass f
ur alle k N0 : uv k w L

u, v, w

771

772

Beweis. Sei M = (, Q, , q0 , F ) ein DEA mit L(M ) = L und |Q| = n.


Wir zerlegen wie oben gezeigt jedes Wort x L(M ) mit |x| n so, dass die Bedingungen des Satzes erf
ullt sind. Sei also
x = uvw = a1 . . . ai ai+1 . . . aj aj+1 . . . am
| {z } | {z } | {z }
=u

773

=v

=w

wie oben.

774

Wegen i < j gilt |v| 1.

775

Wegen j n gilt |uv| = |a1 . . . aj | = j n.


Sei k N0 . Betrachte

x0 = uv k w

Der zu x0 geh
orende Lauf hat die Form

q0 , . . . , qi , (qi+1 , . . . , qj )k , qj+1 , . . . , qm .

776

und ist akzeptierend, weil qm F . Also gilt x0 L(M ) = L.

777

Pumping Lemma
Beweise

Bemerkung 2.74: Das Pumping Lemma kann nicht verwendet werden, um die Regularit
at von L nachzuweisen (L REG ), weil es sich um eine Folgerung aus dieser
Eigenschaft handelt, die nicht umgekehrt werden kann.
Mit A B gilt nicht B A.

778
779

Im Falle des Pumping Lemmas ist A die Aussage: L ist eine regul
are Sprache. B ist der
ganze Rest des Satzes.
G
ultig ist die folgende Umkehrung:
AB

780
781
782
783
784

gdw. B A

Auf das Pumping Lemma (PL) u


bertragen bedeutet dies: Wenn die Aussage, die das
PL u
ber eine Sprache L macht nicht gilt, dann ist diese Sprache L nicht regular.
Da die Negation einer f
ur alle-Aussage eine es gibt-Aussage ist (und umgekehrt),
muss also zum Nachweis der Nicht-Regularitat einer Sprache folgende Aussage bewiesen
werden:
Entwurfsfassung vom 27. September 2016

39

REGULARE

2.11. DAS PUMPING LEMMA FUR


SPRACHEN

F
ur jede ganze Zahl n 1 gibt es ein Wort x L mit |x| n so dass f
ur
jede Zerlegung
x = uvw,
785

786

787
788
789
790
791
792
793

n n

{a b } 6 REG

|uv| n,

u, v, w

gilt, dass es ein k N0 gibt mit uv k w 6 L.


Gelingt dieser Nachweis, dann ist L nicht regular.
Bemerkung 2.75: Alternativ konnen wir annehmen, dass L eine regulare Sprache
w
are. Unter dieser Annahme m
usste die Folgerung des Pumpinglemmas wahr sein.
Wenn es gelingt zu beweisen, dass die Folgerung falsch ist, dann muss die Annahme
falsch gewesen sein und damit folgt L ist nicht regular.
Grunds
atzlich l
auft diese Technik auf den gleichen Beweis hinaus, der sich nur etwas
anders pr
asentiert. Welche der beiden Techniken man verwendet ist letztendlich Geschmackssache (vlg. 2.76 vs. 2.77)

794

Beispiel 2.76: Die Sprache L = {an bn | n No } {a, b} ist nicht regular.

795

Beweis. Zu zeigen:

PL Beweis durch
Widerspruch

|v| 1,

F
ur jede ganze Zahl n 1 gibt es ein Wort x L mit |x| n so dass f
ur
jede Zerlegung
|v| 1,

|uv| n,

u, v, w

DR
AF

x = uvw,

796

gilt, das es ein k N0 gibt mit uv k w 6 L.

F
ur jede ganze Zahl n 1
W
ahlen wir w = an bn ; f
ur dieses w gilt |w| n.
F
ur jede Zerlegung
x = uvw,

|v| 1,

|uv| n,

sei i = |u|, j = |v|, l = |w|, da gilt: i + j n,


Zusammensetzung:

u, v, w

j 1 hat die Zerlegung die folgende

. . a} a
. . a} b| .{z
. . }b
x = u v w = (ai ) (aj ) (am bn ) = a
. . a} a
| .{z
| .{z
| .{z
|u| = i |v| = j m-mal n-mal
{z
}
|

|w| = l = m + n

also uv = ai aj und w = am bn wobei m + n = l und i + j + m = n.


Wir w
ahlen k = 0 und zeigen
uv k w 6 L
Dies ist leicht zu sehen, denn

uv k w = uv 0 w = ai am bn ,

797

798

i+m<i+j+m=n

also ist uv k w 6 L.
Folglich ist L nicht regul
ar.

{an bn } 6 REG
799
Beispiel 2.77: Die Sprache L = {an bn | n No } {a, b} ist nicht regular.
durch Widerspruch
Beweis. Angenommen L ware regular, dann gabe es eine ganze Zahl n 1, so dass es
f
ur jedes Wort x L mit |x| n eine Zerlegung gabe mit:
x = uvw,
800
801
802

|v| 1,

|uv| n,

u, v, w

so dass f
ur alle k N0 : uv k w L
Sei n die Zahl, die nach Annahme existieren m
usste. F
ur jedes Wort x mit |x| n
m
usste das PL gelten. Also auch f
ur x = an bn .

Entwurfsfassung vom 27. September 2016

40

REGULARE

2.11. DAS PUMPING LEMMA FUR


SPRACHEN

F
ur dieses gibt es gem
a unserer Annahme eine Zerlegung:
x = uvw,
803

|v| 1,

|uv| n,

so dass f
ur alle k N0 : uv k w L.
Sei i = |u|, j = |v|, l = |w|, da gilt: i + j n,
Zusammensetzung:

u, v, w

j 1 hat die Zerlegung die folgende

x = u v w = (ai ) (aj ) (am bn ) = a


. . a} a
. . a} a
. . a} b| .{z
. . }b
| .{z
| .{z
| .{z
|u| = i |v| = j m-mal n-mal
{z
}
|

|w| = l = m + n

804
805

also uv = ai aj und w = am bn wobei m + n = l und i + j + m = n.


Wir zeigen, dass die Aussage f
ur alle k N0 : uv k w L zu einem Widerspruch f
uhrt:
Sei k = 0, dann gilt

806

also ist uv k w 6 L

807

Folglich ist L nicht regul


ar.

808

Beispiel 2.78: Die Sprache L = {an | n No } {a} ist nicht regular.

Beweis.
F
ur jede ganze Zahl n 1
2
W
ahlen wir w = an ; f
ur dieses w gilt |w| n.
F
ur jede Zerlegung

DR
AF

{an } 6 REG

i+m<i+j+m=n

uv k w = uv 0 w = ai am bn ,

x = uvw,

|v| 1,

|uv| n,

sei i = |u|, j = |v|, l = |w|, es gilt: i + j n, j 1,


Wir w
ahlen k = 2 und zeigen
uv k w 6 L

u, v, w

i + j + l = n2 .

Es gilt: |uv 2 w| = i + 2j + l = i + j + l + j = n2 + j > n2 (weil j 1).


Zeige nun noch, dass |uv 2 w| < (n + 1)2 :
(n + 1)2 = n2 + 2n + 1 > n2 + n n2 + j = |uv 2 w|

809
810

811

Damit liegt die L


ange von uv 2 w zwischen zwei Quadratzahlen und damit ist uv 2 w nicht
in L.
Also ist L nicht regul
ar.

Entwurfsfassung vom 27. September 2016

41

813

814

815
816
817
818

Kontextfreie Sprachen
3.1

Kontextfreie Grammatiken

In Abschnitt 2.11 haben wir gesehen, dass es Sprachen gibt, die nicht regular sind (z.B.
{an bn }). Als n
achstes betrachten wir daher die Klasse der kontextfreien Sprachen. Auch
diese umfasst nicht alle Sprachen die es gibt, aber sie stellt eine weitere sehr wichtige
Sprachklasse dar. Insbesondere die deterministisch kontextfreien Sprachen spielen im
Compilerbau eine groe Rolle und tatsachlich sind alle u
blichen Programmiersprachen
deterministisch kontextfrei.
In Definition 1.10, Abschnitt 1.2, haben wir allgemein definiert, was man unter einer Grammatik f
ur eine Sprache versteht. F
ur kontextfreie Sprachen gilt die folgende
Spezialisierung:

DR
AF

819

Kapitel 3

812

820
821

822
823

Kontextfreie
Grammatik
kfG

Definition 3.1: Sei G = (, V, P , S) eine Grammatik. G heit kontextfrei (kfG) oder


vom Typ 2, wenn

P V (V )

kfG f
ur {an bn }

Beispiel 3.2: Die Grammatik

G = ({a, b}, {S}, {S aSb | }, S)

824

kfG f
ur AL

erzeugt L(G) = {an bn | n N0 }.

Beispiel 3.3: Die Sprache der Aussagenlogik (AL) besteht aus den syntaktisch korrekten booleschen Ausdr
ucken u
ber der Variablenmenge {x0 , x1 , . . .}. Sie kann durch
die folgende kfG erzeugt werden:
G = (, V, P , S)

= {x, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, , , , ), (}

V = {S, X, Y }

P = {S X | (S) | (S S) | (S S),
X x0 | x1Y | x2Y | x3Y | x4Y | x5Y | x6Y | x7Y | x8Y | x9Y,
Y | 0Y | 1Y | 2Y | 3Y | 4Y | 5Y | 6Y | 7Y | 8Y | 9Y }

Eine Beispiel-Ableitung in dieser Grammatik ware z.B.


S (S)
((S S))
((S (S)))
(((S S) (S)))
(((X S) (S)))
(((x3Y S) (S)))
(((x3 S) (S)))
(((x3 x2) (x1)))

Entwurfsfassung vom 27. September 2016

42

3.1. KONTEXTFREIE GRAMMATIKEN

kfG f
ur eine Programmiersprache

Beispiel 3.4: Wir beginnen die Definition einer minimalistischen Programmiersprache, die nur Bin
arzahlen kennt und bei der die Variablen stets mit dem Buchstaben x
beginnen, Funktionen stets mit dem Buchstaben f .
G = (, V, P , S)
= {x, f, 0, 1, }, {, ), (, ; , ., :, =, +, , , /, }
V = {S, Decl, Zahl, X, Y, Zuweisung, Arith}
P = {S S; S | Decl | Zuweisung |
Decl int

X := Zahl

X x Zahl
Zahl 0|1Y | 1Y
Y | 0Y | 1Y
Zuweisung X := Zahl | X := Arith
Arith Zahl | X | (Arith) | (Arith + Arith) | (Arith Arith)

| (Arith Arith) | (Arith/Arith)


}

in dieser Grammatik k
onnen wir z.B. das folgende Programm ableiten:
S
x1 := 101;

int

x2 := 0;

DR
AF

int

x1 := 111;

x2 := ((1111 + (x1 (x1/10))))

825

826

827
828

829
830

Ableitungsbaum,
parse tree

831

832

3.1.1

Ableitungsb
aume

Betrachten wir die Ableitung aus dem Beispiel 3.3, dann erkennt man schnell, dass es
mehrere m
ogliche Ableitungen des Ausdrucks (((x3 x2) (x1))) gibt. Denn bei
kontextfreien Grammatiken konnen in einer Ableitung mehrere Variabeln auftreten. Es
ist nicht n
aher bestimmt, welche von diesen als nachste abgeleitet werden muss. Dies
f
uhrt uns zu folgender Definition:
Definition 3.5: F
ur eine kontextfreie Sprache L kann die Ableitung eines
Wortes w L durch seinen Ableitungsbaum dargestellt werden.
Dieses Konzept definieren wir etwas allgemeiner f
ur beliebige Worter x { V } , die
w
ahrend des Abeitungsprozesses auftreten konnen:
A x1 x2 . . . xn1 xn = x

833

834

835

836
837
838
839
840

841
842

wird durch seinen Ableitungsbaum (parse tree) dargestellt. Dies ist ein gerichteter Baum,
dessen Knoten mit Variablen oder Buchstaben beschriftet sind, so dass gilt:
Die Wurzel ist mit A markiert.

Jeder innere Knoten v ist mit einem Nichtterminal X V beschriftet; die Verzweigungen in v stellen eine der in der Ableitung A x1 . . . xn = x
angewandten Regeln dar. Genauer:
Wenn die Kindknoten v1 , . . . , vk von v von links nach rechts mit den Symbolen
X1 , . . . , Xk beschriftet sind, dann muss X X1 Xk P gelten.
Die Markierungen der Blatter ergeben von links nach rechts gelesen das Wort
x.

parse tree von


843
Beispiel 3.6: Als Beispiel betrachten wir den parse tree von (((x3 x2) (x1)))
(((x3 x2) (x1)))844 in der Grammatik aus Beispiel 3.3:

Entwurfsfassung vom 27. September 2016

43

3.1. KONTEXTFREIE GRAMMATIKEN

DR
AF

Abbildung 3.1: Parse tree der aussagenlogischen Formel: (((x3 x2) (x1)))

Rechtsableitung,
Linksableitung

Definition 3.7: Sei G = (, V, P , S) eine kfG. Wir definieren die Rechtsableitungsrelation R wie folgt. Es gilt
u R u0 ,

845
846

847

848

849

850

851

Eindeutigkeit,
Mehrdeutigkeit

falls u = xAz, wobei z , A V und x (V ) und u0 = xyz f


ur eine Regel
A y von G.
R bezeichnet die reflexive transitive H
ulle von R . In analoger Weise sind Linksableitungen und die Relationen L , L definiert.
Wie bei regul
aren Grammatiken kann es mehrere Moglichkeiten geben, ein Wort in einer
kfG abzuleiten (d.h. unterschiedliche Folgen von Regeln konnen zum gleichen Ergebnis
f
uhren).

854

Definition 3.8: Eine kontextfreie Grammatik G heit eindeutig, wenn es zu jedem


Wort x L(G) genau einen Ableitungsbaum gibt. Gibt es f
ur mindestens ein Wort
mehrere Ableitungsb
aume, so heit G mehrdeutig.

855

3.1.2

852
853

856

857

858
859

Die Chomsky-Normalform

Jede kontextfreie Grammatik1 kann in einer standardisierten Art und Weise notiert
werden, der sogenannten Chomsky Normalform2 . Vorbereitend hierzu zeigen wir, dass
eine Grammatik von -Regeln, Kettenregeln und nutzlosen Variablen befreit werden
kann.

-freie kontextfreie 860 Definition 3.9: Eine kontextfreie Grammatik G = (, V, P , S) heit -frei, falls gilt:
Grammatik
861
1. Aus A folgt A = S.
862

863

2. Falls S , dann gibt es keine Regel A v, so dass S in v vorkommt.


Lemma 3.10: Zu jeder kfG gibt es eine aquivalente -freie kfG.
1 Im Zusammenhang mit der Chomsky-Normalform betrachten wir nur -freie Sprachen. Man kann
aber auch Sprachen, die das leere Wort enthalten, prinzipiell in CNF bringen, sofern man einen Ausnahmefall in nicht-CNF erlaubt.
2 Neben dieser gibt es noch die Greibach-Normalform, die wir hier aber nicht behandeln.

Entwurfsfassung vom 27. September 2016

44

3.1. KONTEXTFREIE GRAMMATIKEN

864
865
866

867

Beweis. Sei G = (, V, P , S) eine kfG.


Zun
achst erweitern wir die Grammatik um ein neues Startsymbol, damit alle -Regeln
von G entfernt werden k
onnen:
Sei S 0
/ V , dann setze V 0 = V {S 0 } und
(
P {S 0 S}
falls 6 L(G)
0
P =
0
0
P {S S, S } sonst
Wir setzten G0 = (, V 0 , P 0 , S 0 ). Es gilt L(G) = L(G0 )
Im n
achsten Schritt bestimmen wir alle Nichtterminale A, aus denen das leere Wort
hergeleitet werden kann, f
ur die also gilt:
A

870

Der folgende Algorithmus berechnet zunachst die Menge der Variablen, aus denen in
einem einzigen Schritt das leere Wort hergeleitet werden kann. Danach werden alle
Variablen gesucht, aus denen Worter abgeleitet werden konnen, die wiederum nur aus
Variablen bestehen, die zu abgeleitet werden konnen:

868
869

DR
AF

Algorithmus 2 berechnet die Menge V = {A V | A }


V := {A V | A P }
while es gibt B A1 . . . An P mit A1 , . . . , An V do
V := V {B}
end while
return V

871

872

873
874

Nun entfernen wir alle -Regeln aus der Grammatik G0 . Sei G00 = (, V 0 , P 00 , S 0 ) wobei
V 0 und S 0 wie in G0 gew
ahlt. Das neue Produktionssystem P 00 wird durch folgenden
Algorithmus berechnet:
Algorithmus 3 berechnet das Produktionssystem einer aquivalenten -freien kfG
Require: V := {A V : A } // aus Algorithmus 2
P 00 := P 0 \ {A | A V }
// entferne alle -Regeln
for all B V mit B xAy P 00 und A V , |xy| 1 und B xy 6 P do
P 00 := P 00 {B xy}
end for
return P 00
Offenbar ist die so definierte Grammatik G00 eine -freie Grammatik mit
L(G00 ) = L(G0 ) = L(G).

875

Beispiel 3.11:

G = (, V, P , S)
= {a, b, c}
V = {S, A, B, C, D, E}
P = {S aAb |
A cS | B |
B bB | aA | C
C cC | c | A
D aSb | E
E aE}

Entwurfsfassung vom 27. September 2016

45

3.1. KONTEXTFREIE GRAMMATIKEN

G0 = (, V 0 , P 0 , S 0 )
= {a, b, c}
V 0 = {S 0 } {S, A, B, C, D, E}
P 0 = {S 0 S |
S aAb |
A cS | B |
B bB | aA | C
C cC | c | A
D aSb | E
E aE}

Algorithmus 2:

Beispiel zu Alg. 2

V = {S, A}
B aA
CA

DR
AF

D aSb
V = {S, A, B, C, D}

Beispiel zu Alg. 3

Algorithmus 3:

G00 = (, V 0 , P 00 , S 0 )

V 0 = {S 0 , S, A, B, C, D, E}

V = {S, A, B, C, D} //R
uckgabe von Algorithmus 2

P 00 = {S 0 S |

S aAb | ab

A cS | B | c

B bB | aA | a | b | C
C cC | c | A

D aSb | E | ab
E aE}

Nutzlose Variablen

876

877
878

879
880
881
882
883

Definition 3.12: Sei G = (, V, P , S) eine kfG und A V . A heit nutzlos, wenn es


kein Wort w mit
S xAy w
mit x, y ( V ) gibt.

Lemma 3.13: Zur jeder kfG G mit L(G) 6= gibt es eine aquivalente kfG G0 ohne
nutzlose Variablen.
Beweis. Wir k
onnen eine zu G aquivalente Grammatik durch den folgenden Algorithmus 4 berechnen. Dieser berechnet zunachst, aus welchen Variablen in V u
berhaupt
ein Wort aus abgeleitet werden kann (das Ergebnis ist G0 ). Danach wird ermittelt,
welche Variablen und welche Buchstaben innerhalb einer Ableitung auftreten konnen.
Diese werden zur Grammatik G00 hinzugef
ugt.

Entwurfsfassung vom 27. September 2016

46

3.1. KONTEXTFREIE GRAMMATIKEN

Algorithmus 4 berechnet aquivalente kfG ohne nutzlose Variablen


Require: kfG G = (, V, P , S) mit L(G) 6=
Ensure: G00 kfG mit L(G00 ) = L(G) ohne nutzlose Variablen
//Teil 1: Elimination aller Variablen, aus denen kein Wort abgeleitet werden kann
V 0 = {A V | A w f
ur ein w }
// Menge der n
utzlichen Variablen
0
while es gibt A V \ V mit A X1 X2 . . . Xk P
und f
ur alle i = 1, . . . , k : Xi V 0 do
0
0
V := V {A}
end while
P 0 := {A X1 X2 . . . Xk P | A V 0 , Xi V 0 }
G0 := (, V 0 , P 0 , S)

DR
AF

//Teil 2: Elimination aller Variablen und Buchstaben, die nicht abgeleitet werden
k
onnen sowie der entsprechenden Regeln des Produktionssystems
00
:= {S}; 00neu := ; P 00 :=
Vneu
repeat
00
V 00 := Vneu
00
00
:= neu
for all A V 00 do
for all A x P 0 do
00
00
{B V 0 | B kommt in x vor}
Vneu
:= Vneu
00
00
neu := neu {a | a kommt in x vor}
P 00 := P 00 {A x}
end for
end for
00
= V 00 und 00neu = 00
until Vneu
00
return G := (00 , V 00 , P 00 , S)

884

reduzierte kfG

885

886

Definition 3.14: Eine kfG G heit reduziert, wenn sie keine nutzlosen Symbole (Terminale oder Nichtterminale) enthalt.
Beispiel 3.15: Wir betrachten wieder die selbe Grammatik wie zuvor; zur besseren
Lesbarkeit bezeichnen wir die Grammatik in diesem und den folgenden Beispielen aber
stets mit G = (, V, P , S). Achtung: im vorherigen Beispiel war das Startsymbol mit S
bezeichnet; um Verwechslungen zu vermeiden, benennen wir daher das Nichtterminal
S in T um und bezeichnen das Startsymbol S 0 mit S. Es ist also
G = (, V, P , S)

= {a, b, c}

V = {S, T, A, B, C, D, E}

P = {S T | //ehemals S 0

T aAb | ab //ehemals S
A cT | B | c

B bB | aA | a | b | C
C cC | c | A
D aT b | C | ab
E aE}
Beispiel zu Alg. 4

Algorithmus 4: Die Menge der n


utzlichen Variablen ist V 0 = {S, T, A, B, C, D}. Es ist
0
E V \V mit E aE, aE
/ V 0 (wegen E
/ V 0 ), sodass E nicht zu V 0 hinzugef
ugt
0
wird. In das Produktionssystem P werden alle Ableitungen u
bernommen, die von den
Variablen aus V erzeugt werden. Nun m
ussen Variablen und Buchstaben (und entsprechende Produktionsregeln) eliminiert werden, die nicht abgeleitet werden konnen.
Entwurfsfassung vom 27. September 2016

47

3.1. KONTEXTFREIE GRAMMATIKEN

00
00
Beginnend mit Vneu
= {S} werden sukzessive alle aus Vneu
erreichbaren Variablen hinzugef
ugt (und analog entsprechende Buchstaben und Regeln des Produktionssystems);
schlielich erhalten wir:
00
Vneu
= {S, T, A, B, C}

00neu = {a, b, c}
P 00 = {S T |
T aAb | ab
A cT | B | c
B bB | aA | a | b | C
C cC | c | A}
887
888

889
890

Definition 3.16: Sei G = (, V, P , S) eine kfG. Eine Regel der Form A B mit
A, B V wird Kettenregel genannt.
Kettenregeln tragen zur Erzeugung eines Worts nicht bei. Sie konnen wie im folgenden
Algorithmus 5 gezeigt in zwei Schritten eliminiert werden:

Kettenregel

DR
AF

Algorithmus 5 Eliminierung von Kettenregeln.


Require: Reduzierte -freie kfG G = (, V, P , S)

Ensure: Aquivalente
kfG G0 ohne Kettenregeln
//Teil 1: Entferne Zyklen
V 0 := V ; P 0 := P
while es gibt A1 , . . . , An V
mit A1 A2 , A2 A3 , . . . , An1 An , An A1 P do
Ersetze in P 0 in allen Regeln A2 , . . . , An durch A1 .
V 0 := V 0 \ {A2 , . . . , An }
P 0 := P 0 \ {A1 A1 }
end while
Numeriere V 0 = A1 , . . . , Ak , so dass gilt: aus Ai Aj folgt i < j.
// Teil 2: Entferne die verbleibenden Kettenregeln
for i = k 1, . . . , 1 do
for j = i + 1, . . . , k do
if Ai Aj then
P 0 := P 0 \ {Ai Aj };
for all Aj x P 0 do
P 0 := P 0 {Ai x}
end for
end if
end for
end for
return G0 := (, V 0 , P 0 , S)
Beispiel 3.17: Wir betrachten wieder die Grammatik
G = (, V, P , S)

V = {S, T, A, B, C}
= {a, b, c}
P = {S T |
T aAb | ab
A cT | B | c
B bB | aA | a | b | C
C cC | c | A}
Beispiel zu Alg. 5

Algorithmus 5: Bei Zykluselimination ist es egal, mit welchem Nichtterminal (Variable)


in dem Zyklus die Elimination durchgef
uhrt wird! Wir betrachten den Zyklus A
Entwurfsfassung vom 27. September 2016

48

3.1. KONTEXTFREIE GRAMMATIKEN

B C A:
P 0 = {S T |
T aAb | ab
A cT | A | c
A bA | aA | a | b
A cA | c}
0

V = {S, T, A}

wobei die Ableitungen von A zusammengefasst werden konnen und die Regel A A
gestrichen werden muss. Nun m
ussen im 2. Teil noch verbleibende Kettenregeln (hier:
S T ) entfernt werden. Hierzu werden zunachst die Variablen so numeriert, dass S
vor T liegt;
V 0 = {A1 , A2 , A3 }
A1 = S, A2 = T, A3 = A

Es ergibt sich im zweiten Teil des Algorithmus insgesamt:


G0 = (, V 0 , P 0 , S)
V 0 = {S, T, A}
P 0 = {S | aAb | ab

DR
AF

T ab | aAb

A cT | c | bA | aA | a | b | cA}

891
892
893

Chomsky
Normalform, CNF

Nach Durchf
uhrung dieses Algorithmus sollte die entstandene Grammatik nochmal auf
nutzlose Variablen gepr
uft und ggf. reduziert werden. In unserem Beispiel ist dies nicht
notwendig, die Grammatik ist weiterhin in reduzierter Form.

Definition 3.18: Eine kfG G = (, V, P , S) ist in Chomsky Normalform (CNF), falls


P V ((V V ) )

894
895

kfG CNF

896
897

898
899

D.h. die rechte Seite von Regeln besteht entweder aus einem Terminal oder aber zwei
Nichtterminalen.

Satz 3.19: Zu jeder kontextfreien Grammatik G mit 6 L(G) gibt es eine aquivalente
kontextfreie Grammatik G0 in Chomsky Normalform.
Beweis. Wir gehen davon aus, dass G bereits -frei ist, keine nutzlosen Variablen besitzt
und Kettenregeln eliminiert wurden.
Zun
achst f
ugen wir der Grammatik f
ur jedes Terminal a ein neues Nichtterminal Xa
und eine Regel Xa a hinzu:
V := V {Xa | a },

P := P {Xa a | a }

Nun modifizieren wir alle Regeln auf deren rechten Seite ein Terminal nicht alleine
steht. Diese haben die Form
A yaz

900

mit

a , y, z ( V ) , |yz| 1.

Solche Regeln ersetzen wir durch A yXa z.


Im letzten Schritt werden alle Regeln A B1 . . . Bk mit k 3 in CNF-Gestalt gebracht. Die Grundidee hierf
ur besteht darin, die Regel A A1 . . . Ak durch die Rechtsableitung
A A1 R 1
A2 R 2
...
A1 . . . Rk2
A1 . . . Ak
Entwurfsfassung vom 27. September 2016

49

3.1. KONTEXTFREIE GRAMMATIKEN

901
902

zu ersetzen. Dabei sind R1 , . . . , Rk2 neue Nichtterminale. Dies liefert der folgende
Algorithmus 6.

DR
AF

for all A A1 A2 . . . Ak P 0 mit k 3 do


V 0 := V 0 {R1 , R2 , . . . Rk2 }
P 0 := P 0 \ {A A1 A2 . . . Ak }
P 0 := P 0 {A A1 R1 }
for i := 1, . . . , k 3 do
P 0 := P 0 {Ri Ai+1 Ri+1 }
end for
P 0 := P 0 {Rk2 Ak1 Ak }
end for
return G0 = (, V 0 , P 0 , S)

Algorithmus 6 Erstellung einer CNF-Grammatik.


Require: G = (, V, P, S) eine -freie reduzierte kfG ohne Kettenregeln

Ensure: Aquivalente
Gammatik G0 in CNF
0
V := V {Xa | a }
// Xa neue Variable, d.h. Xa 6 V
P 0 := P {Xa a | a }
for all a do
for all A x P 0 mit |x| 2 do
Ersetze alle a in x durch Xa .
end for
end for
// Jetzt haben alle Regeln die Form A a oder A B1 B2 . . . Bk mit k 2

903

Der Algorithmus liefert offensichtlich eine aquivalente Grammatik in CNF.


Beispiel 3.20: Sei G = (, V, P , S) eine kontextfreie Grammatik in Anlehnung an das
Beispiel zu Algorithmus 5. Da eine Grammatik nur dann in eine aquivalente Grammatik
in CNF transformiert werden kann, wenn das leere Wort nicht in der erzeugten Sprache
enthalten ist, m
ussen wir unser Beispiel modifizieren. Hierzu entfernen wir die Ableitung
S aus P und verzichten zwecks besserer Lesbarkeit auf die Hochkommata. Durch
das Entfernen der Ableitung ist die erzeugte Sprache nat
urlich nicht mehr aquivalent
zu der aus den vorherigen Beispielen! Die Grammatik hat also die Form:
G = (, V, P , S)

V = {S, T, A}
= {a, b, c}

P = {S aAb | ab,

T aAb | ab,

A cT | c | aA | bA | cA | a | b}

Beispiel zu Alg. 6

Algorithmus 6: Wir erg


anzen V um je ein neues Nichtterminal f
ur jeden Buchstaben
aus :
Xa a, Xb b, Xc c.
Damit ist V 0 = {S, T, A, Xa , Xb , Xc }, und
P 0 = {S Xa AXb | Xa Xb ,
T Xa AXb | Xa Xb ,
A Xc T | a | b | c | Xa A | Xb A | Xc A,
Xa a,
Xb b,
Xc c}

Entwurfsfassung vom 27. September 2016

50

3.1. KONTEXTFREIE GRAMMATIKEN

Alle Regeln haben nun die Form A a oder A A1 A2 . . . Ak mit k 2. Um eine


Grammatik in CNF zu erhalten, m
ussen nun noch Regeln der Form A A1 A2 . . . Ak
mit k 3 entfernt (und anschlieend mittels neuer Variablen R1 , R2 , . . . , Rk2 f
ur die
Reste ersetzt) werden:
P 0 = {S Xa Xb ,
T Xa Xb ,
A Xc T | a | b | c | Xa A | Xb A | Xc A,
Xa a,
Xb b,
Xc c}

P 0 = {S Xa R | Xa Xb ,
T Xa R | Xa Xb ,

Da hier nur Regeln mit einer Ableitung von maximal 3 Nichtterminalen auftreten,
ben
otigen wir je solcher Ableitung lediglich ein neues Nichtterminal R (d.h. insbesondere, dass die for -Schleife in diesem Fall nicht durchlaufen werden muss). Da sich die
Ableitung auf 3 Nichtterminale von S Xa AXb und T Xa AXb nicht unterscheidet,
k
onnen wir diese beiden Reste zusatzlich zusammenfassen, sodass auch insgesamt nur
eine neue Variable notwendig ist. Es folgt:

DR
AF

A Xc T | a | b | c | Xa A | Xb A | Xc A,
Xa a,

Xb b,

Xc c,

R AXb }

905

sowie V 0 = {S, T, A, Xa , Xb , Xc , R}. Die Grammatik G0 = ({a, b, c}, V 0 , P 0 , S) ist in


CNF.

906

3.1.3

904

Wortproblem

907

908

909

910
911

912

913
914
915

916

Das Wortproblem fu
r kontextfreie Sprachen

Definition 3.21: Um zu entscheiden, ob ein Wort w in einer Sprache L = L(G)


enthalten ist, muss gepr
uft werden, ob dieses aus dem Startsymbol der Grammatik
abgeleitet werden kann. Allgemein wird dieses Problem als Wortproblem bezeichnet.
F
ur Grammatiken in CNF ist das Wortproblem effizient losbar, wie der folgende Algorithmus 8 (Cocke-Younger-Kasami-Algorithmus) belegt. Dieser konstruiert nach der
Methode des dynamischen Programmierens zunachst die Mengen von Variablen V (i, 1),
aus denen sich die einbuchstabigen Teil-Worter von w in G ableiten lassen. Danach
werden sukzessive die entsprechenden Variablenmengen f
ur immer langere Teil-Worter
konstruiert. Im letzten Schritt erhalt man die Menge der Variablen, aus denen man das
gesamte Wort w ableiten kann.

917

Entwurfsfassung vom 27. September 2016

51

3.1. KONTEXTFREIE GRAMMATIKEN

918
919

A BC P

B V [i, l]

C V [i + l, j l]

Beispiel 3.22: Mit Hilfe des CYK-Algorithmus konnen wir nun pr


ufen, ob das Wort
abcb aus der CNF-Grammatik G0 (siehe Beispiel zu Algorithmus 6) abgeleitet werden
kann.

DR
AF

920

in CNF

Algorithmus 7 Der CYK-Algorithmus


Require: w = a1 a2 . . . an , kfG G = (, V, P, S)
Ensure: returns 1 gdw. x L(G)
for i = 1, . . . , n do
V [i, 1] := {A V : A ai }
end for
for j = 2, . . . , n do
for i = 1, . . . , n + 1 j do
V [i, j] :=
for l = 1, . . . , j 1 do

es gibt


V [i, j] := V [i, j] A V mit

und
end for
end for
end for
return (S V [1, n])

Beispiel zum
CYK-Alg.

921

Algorithmus 8:

4
3
2
1

922

923
924

925
926

927

928

929

{R, A, S, T }
{A}
{A, S, R, T }
{Xa , A}
a

{R, A}
{A}
{Xb , A}
b

{A, R}
{Xc , A}
c

{Xb , A}
b

Diese Tabelle l
asst sich sukzessive von unten nach oben f
ullen.
Beispielhaft betrachten wir Zelle V [2, 3] genauer: F
ur Zelle V [2, 3] werden diejenigen
Nichtterminale gesucht, die
(1) zu einem Nichtterminal aus Zelle V [2, 1] und einem Nichtterminal aus Zelle V [3, 2]
(in dieser Reihenfolge), oder
(2) zu einem Nichtterminal aus Zelle V [2, 2] und einem Nichtterminal aus Zelle V [4, 1]
(in dieser Reihenfolge) abgeleitet werden konnen;
es ist R AXb aus Fall (1) und A Xb A aus Fall (2).
Es ist S in Zelle V [1, 4] enthalten, d.h. das Wort ist ableitbar in der gegebenen Grammatik, abcb L(G0 ):
S Xa Y Xa AXb Xa Xb AXb abcb

930

Hinweis: Dieser Pfad selbst kann nicht unmittelbar aus der Tabelle abgelesen werden!

931

3.1.4

938

F
ur regul
are Sprachen haben wir durch die Konstruktion entsprechender Automaten
gezeigt, dass diese abgeschlossen sind unter Vereinigung, Durchschnitt, Konkatenation,
Komplement und Kleenestern. Kontextfreie Sprachen sind unter Vereinigung, Konkatenation und Kleenestern abgeschlossen, nicht aber unter Durchschnitt und Komplement.
Seien im folgenden L1 und L2 zwei kfS u
ber dem Alphabet und G1 = (, V1 , P1 , S1 )
und G2 = (, V2 , P2 , S2 ) zwei Grammatiken mit L(G1 ) = L1 , L(G2 ) = L2 . O.B.d.A3
k
onnen wir annehmen, dass V1 V2 = .

939

Lemma 3.23: F
ur zwei kontextfreie Sprachen L1 , L2 ist L1 L2 ebenfalls kontextfrei.

932
933
934
935
936
937

Vereinigung von
kfS

Abschlusseigenschaften und nicht-kontextfreie Sprachen

3 Ohne

Beschr
ankung der Allgemeinheit

Entwurfsfassung vom 27. September 2016

52

3.1. KONTEXTFREIE GRAMMATIKEN

Beweis. G1 G2 = (, V, P , S) bezeichne diejenige Grammatik mit:


V = V1 V2 {S}
wobei S
/ V1 V2 ein neues Startsymbol ist und
P = P1 P2 {S S1 , S S2 }.
Offensichtlich ist G1 G2 kontextfrei und es gilt:
L(G1 G2 ) = L(G1 ) L(G2 ).
940

Konkatenation

941

Lemma 3.24: F
ur zwei kontextfreie Sprachen L1 , L2 ist L1 L2 ebenfalls kontextfrei.
Beweis. Wir definieren die Grammatik G1 G2 = (, V, P , S) wie folgt:

wobei S
/ V1 V2 ein neues Startsymbol und

V = V1 V2 {S}

P = P1 P2 {S S1 S2 }.
Offenbar ist L(G1 G2 ) kontextfrei und es gilt:

DR
AF

L(G1 G2 ) = L(G1 ) L(G2 ).

942

Kleeneabschluss

943

Lemma 3.25: F
ur eine kfS L ist L ebenfalls kontextfrei.

Beweis. Sei G = (, V, P , S) eine kontextfreie Grammatik. G bezeichnet diejenige


Grammtik G = (, V 0 , P 0 , S 0 ) mit:
V 0 = V {S 0 } mit S 0
/V

und

P 0 = P {S 0 , S 0 SS 0 }.

944

Pumping Lemma
f
ur kfS

945

946

947

Es gilt G ist kontextfrei und L(G ) = L(G) .

Lemma 3.26: Sei L eine kontextfreie Sprache. Dann gibt es eine nat
urliche Zahl n,
so dass sich jedes Wort z L der Lange |z| n wie folgt zerlegen lasst: z = uvwxy,
wobei

948

(1) |vx| 1

949

(2) |vwx| n

950

(3) uv k wxk y L f
ur alle k N0 .

951

Beweis. (ohne Beweis.) Siehe hierzu z.B. [AB02, VW11].


Beispiel 3.27: Wir betrachten die Sprache


L = an bn cn : n N .

Angenommen L w
are kontextfrei und n die Zahl aus dem Pumping Lemma, dann sei
z = an bn cn .
z kann in z = uvwxy zerlegt werden, so dass die Eigenschaften (1), (2) und (3) aus
dem Pumping Lemma erf
ullt sind. Weil
|vwx| n
952

ist vwx entweder ein Teilwort von an bn oder von bn cn . Da


Entwurfsfassung vom 27. September 2016

53

3.2. KELLERAUTOMATEN

v 6= oder x 6=

953

ist die Anzahl der Vorkommen der drei Symbole a, b und c in uv 2 wx2 y unterschiedlich.
Daher ist
uv 2 wx2 y
/ L.
kfS und
Durchschnitt

954
955

Lemma 3.28: Die Klasse der kontextfreien Sprachen ist nicht abgeschlossen unter
Durchschnittsbildung.
Beweis. Die Sprachen
L1 = {an bn cm : n, m 1},

L2 = {an bm cm : n, m 1}

werden von den kontextfreien Grammatiken mit den Regelmengen


P1 = {S DC, C c | Cc, D aDb | ab}
P2 = {S AD, A a | aA, D bDc | bc}

956

957

haben wir jedoch zuvor gezeigt, dass diese nicht kontextfrei ist.

Lemma 3.29: Die Klasse der kontextfreien Sprachen ist nicht abgeschlossen unter
Komplementbildung.

DR
AF

Komplement von
kfS

erzeugt und sind daher kontextfrei. F


ur die Sprache


L1 L2 = an bn cn : n 1

958

Beweis. Es gilt:

L1 L2 = L1 L2

959
960

961

W
aren kontextfreie Sprachen unter der Vereinigung abgeschlossem, so w
urde aufgrund
der Abgeschlossenheit unter Komplementbildung auch die Abgeschlossenheit unter Durchschnittsbildung gelten. Dass dies nicht gilt, haben wir aber soeben gezeigt.

962
Satz 3.30: Die Klasse der kontextfreien Sprachen ist abgeschlossen unter
Abschlusseigenschaften
Vereinigung,
nicht-kontextfreier 963
Sprachen
964
Konkatenation und

965

Kleeneabschluss

966

Sie ist nicht abgeschlossen unter Durchschnitts- und Komplementbildung.

967

3.2

Nichtdeterministischer
Kellerautomat
(NKA)

Kellerautomaten

Definition 3.31: Ein NKA ist ein Tupel

K = (, Q, , , q0 , , F )

968

bestehend aus

969

einem Eingabealphabet ,

970

einer endlichen Menge Q von Zustanden,

971

einem Kelleralphabet ,

972

einem Anfangszustand q0 Q,

973

einem Kellerstartsymbol ,

974

einer Menge F Q von Endzustanden,

975

einer Ubergangsfunktion
: Q ( {}) 2Q .

Entwurfsfassung vom 27. September 2016

54

3.2. KELLERAUTOMATEN

Definition 3.32: Sei K = (, Q, , , q0 , , F ) ein NKA. Eine Konfiguration f


ur K
ist ein Tripel
k = (q, w, z)

Konfiguration

976

bestehend aus

977

einem Zustand q Q (aktueller Zustand),

978

einem Wort w (noch nicht gelesene Eingabe),

979

einem Wort z (aktueller Kellerinhalt).

980
981

Konfigurationsrelation

Bemerkung 3.33: Die Anfangskonfiguration f


ur das Eingabewort w ist k0 =
(q0 , w, ).
Definition 3.34: Sei K ein NKA, wie zuvor.
Conf (K ) = Q

982

Sie ist die kleinste Relation mit folgenden beiden Eigenschaften:

1. Aus (p, y) (q, a, X) und a folgt (q, aw, Xz) ` (p, w, yz).

DR
AF

983

bezeichnet die Menge aller Konfigurationen. Die Konfigurationsrelation `K (kurz `)


hat folgende Signatur:
` Conf (K ) Conf (K ).

984

985

986

akzeptierte Sprache

2. Aus (p, y) (q, , X) folgt (q, w, Xz) ` (p, w, yz).

Dabei sind q, p Q, X , a , z, y .
`K (oder kurz ` ) bezeichnet die transitive, reflexive H
ulle von `.
Definition 3.35: Sei K = (, Q, , , q0 , , F ) ein NKA. Die durch leeren Keller
akzeptierte Sprache ist


L (K ) = w : (q0 , w, ) ` (q, , ) f
ur ein q Q .
Die durch die Endzust
ande akzeptierte Sprache ist


L(K ) = w : (q0 , w, ) ` (q, , z) f
ur ein z , q F .

987

Beispiel 3.36: F
ur die Sprache

L = {an bn | n N0 }

988
989

k
onnen wir einen Kellerautomaten K angeben, der L akzeptiert. K kann wie folgt durch
sein Transitionsdiagramm dargestellt werden:
a
aaa

990
991
992
993
994
995
996

a
a

qa

b
a

b
a

qb

qf

K arbeitet wie folgt: K startet in Zustand q . Ist die Eingabe leer, akzeptiert er. Ist das

erste Eingabezeichen ein b, dann gibt es keinen moglichen Ubergang


und K verwirft
sofort.
Beim Lesen eines as wechselt er in den Zustand qa und legt das a u
ber dem -Symbol
im Keller ab. Im Zustand qa wiederholt K dieses Einkellern von as f
ur alle verbleibenden as am Wortanfang. Mit dem ersten gelesenen b wechselt K in den Zustand
qb und entfernt nun f
ur jedes b ein a aus dem Keller. Sind genauso viele bs wie as
Entwurfsfassung vom 27. September 2016

55

3.2. KELLERAUTOMATEN

997
998

gelesen, dann ist am Ende des Worts der Keller leer (bis auf ) und K wechselt in den
Akzeptanzzustand qf .
Formal ist K wie folgt definiert:
K = ({a, b}, {q , qa , qb , qf }, {a, }, , q , , {q , qf }),
wobei
(q , a, ) = {(qa , a)}
(qa , b, a) = {(qb , )}
(qb , , ) = {(qF , )}

999

(qa , a, a) = {(qa , aa)}


(qb , b, a) = {(qb , )}

und () = in allen verbleibenden Fallen.

1000

1001

Aquivalenz
der Akzeptanzbedingungen

1005

Beispiel 3.37: Dies veranschaulichen wir uns vorab am Beispiel 3.364 .

1003

b
a

DR
AF

a
aaa

1004

Man kann zeigen, dass es


aquivalent ist, ob man Endzustande oder einen leeren Stack
verwendet, um die akzeptierte Sprache zu definieren. Wir zeigen zunachst, dass es zu
jedem NKA K einen NKA K 0 mit L(K ) = L (K 0 ) gibt.

1002

q0

a
a

qa

b
a

qb

qf

qleer

Abbildung 3.2: NKA K mit L (K 0 ) = L(K )

1006

1007

1008

1009

1010
1011

1012

1013

1014
1015

1016
1017
1018

K 0 verh
alt sich im Allgemeinen wie K , auer wenn K einen akzeptierenden Zustand
(q0 oder qf ) erreicht. Dann wird das -Symbol vom Stack entfernt.
Man erkennt, dass der Automat K die gleiche Sprache bei leerem Stack akzeptiert, wie
K mit Endzust
anden.
F
ur unseren Beispielautomaten ist diese Konstruktion zwar korrekt, aber im allgemeinen Fall treten hierbei zwei Probleme auf:
1. Wenn wir die Funktionsweise des Automaten nicht genau kennen, konnen wir
nicht wissen, was noch auf dem Stack liegt.
2. Wenn w
ahrend der Berechnung in K der Stack zwischendurch leer ist, akzeptiert
K , w
ahrend K eventuell nicht akzeptieren w
urde.

Den ersten Punkt k


onnen wir behandeln, indem wir in K die Moglichkeit einbauen,
alle noch verbliebenen Zeichen vom Stack zu lesen, wenn K in einem akzeptierenden
Zustand ist.
Probleme mit (in K ) nicht akzeptierenden Berechnungen
(q0 , w, ) `K (q, , ),

1019
1020

q 6 F

verhindern wir, indem wir ein zusatzliches Kellersymbol 0 einf


uhren, das stets ganz
unten im Keller von K 0 liegt.
4 Der

Name des Startzustands wurde angepasst.

Entwurfsfassung vom 27. September 2016

56

3.2. KELLERAUTOMATEN

1021

a
aaa

K0

q00

a
a

q0

b
a
b
a

qa

qb

qf

qleer

1022

1023

f
ur alle X {0 }, d.h. die mit X annotierten Kanten stehen f
ur ||+1 Kanten.

1024

Lemma 3.38: Zu jedem NKA K gibt es einen NKA K 0 mit L(K ) = L (K 0 ).

Beweis. Sei K = (, Q, , , q0 , , F ) ein NKA. Wir entwerfen einen NKA K 0 mit


L(K ) = L (K 0 ):
K 0 = (, Q {q00 , qleer }, {0 }, 0 , q00 , , )
wobei: 0 6 , q00 , qleer 6 Q

DR
AF

0 = {(q00 , , , q0 , 0 )}

{(q, , X, qleer , ) | q F {qleer }, X {0 }}

Damit gilt f
ur einen akzeptierenden Lauf (mit Endzustanden) in K
(q0 , w, ) `K (p, , A1 . . . An ),

p F, Ai

es gibt einen (mit leerem Keller) akzeptierenden Lauf in K f


ur w
(q00 , w, ) `K 0 (q0 , w, 0 ) `K 0 (p, , A1 A2 . . . An 0 )

`K 0 (qleer , , A2 . . . An 0 ) `K 0 (qleer , , 0 ) `K 0 (qleer , , )

Umgekehrt kann jeder akzeptierende Lauf von K in vier Teile zerlegt werden:
(q00 , w, ) `K 0 (q0 , w, 0 )
`K 0

(qf , , ax),

(3.1)
0

qf F, a { }, x ( { })

(3.2)

`K 0 (qleer , , x)

(3.3)

`K 0 (qleer , , )

(3.4)

Der Teilschritt 3.2 endet tatsachlich mit dem leeren Wort in einem Zustand, der ein
Endzustand von K ist, denn alle Kanten zu qleer verarbeiten keine Zeichen der Eingabe.
Auerdem ist der Stack nicht leer (x 6= ), da er mindestens noch das Symbol 0 enthalt.
Damit ist
(q0 , w, 0 ) `K 0 (qf , , ax)

1025

ein akzeptierenden Lauf mit Endzustanden in K f


ur w, also L(K ) = L (K 0 ).

1027

Dass auch die Umkehrung gilt zeigen wir im nachsten Schritt und veranschaulichen es
uns wie zuvor an einem Beispiel:

1028

Beispiel 3.39:

1026

1029

1030

a
a

q0

b
a

q1

b
a

a
aaa

Entwurfsfassung vom 27. September 2016

57

3.2. KELLERAUTOMATEN

1031
1032
1033
1034
1035

Der Automat K akzeptiert erneut die Sprache an bn , diesmal bei leerem Stack.
Wir konstruieren einen NKA K 0 mit L(K 0 ) = L (K ). Die Idee hierbei ist, dass sich K
genauso verh
alt wie K ; die Ausnahme hierbei ist, dass bei leerem Keller in einen akzeptierenden Zustand gewechselt wird. Um dies zu erkennen, wird wie im vorangegangenen
Fall zun
achst ein neues Symbol 0 auf den Keller gelegt.

q00

q0

a
a
a
aaa

b
a

b
a

q1

qf

1036

Die beschriebene Konstruktion kann auf beliebige NKAs angewendet werden.

1038

Lemma 3.40: Zu jedem NKA K gibt es einen NKA K 0 mit L(K 0 ) = L (K ).

1037

Beweis. Sei K = (, Q, , , q0 , , ) ein NKA. Wir definieren


K 0 = (, Q {q00 , qf }, {0 }, 0 , q00 , , {qf }),

DR
AF

wobei 0
/ , q00 , qf
/Q

0 = {(q00 , , , q0 , 0 )}

{(q, , 0 , qf , ) | q Q}

F
ur den Nachweis, dass L(K 0 ) = L (K ) gilt, ist zu zeigen, dass es zu jeder akzeptierenden Berechnung von K bei leerem Stack eine akzeptierende Berechnung von K 0 mit
Endzust
anden gibt. Sei w L (K )
(q0 , w, ) `K (p, , ).

Wir erweitern diesen Lauf zu einem Lauf von K:

(q00 , w, ) `K 0 (q0 , w, 0 ) `K 0 (p, , 0 ) `K 0 (qf , , )

1039

1040

1041

1042
1043

Parser zu kfG
Bl
umchenautomat

Die umgekehrte Richtung kann auf analoge Weise gezeigt werden, da der Endzustand
qf nur erreicht werden kann, wenn das letzte Symbol 0 vom Stack entfernt wurde und
das zu akzeptierende Wort zuvor bereits vollstandig abgearbeitet worden ist.

Auf Basis dieser Ergebnisse konnen wir nun ein einfaches Verfahren angeben, das zu
jeder kfG G einen NKA K einen Parser erzeugt, f
ur den L (K) = L(G) gilt.
Beispiel 3.41: Gegeben sei die folgende kfG G = (, V, P, S) mit
P = {S AB, A a | AA, B b | BB}.

1044

1045

Es gilt L(G) = {an bm | n, m N0 }.


Wir konstruieren einen NKA K mit L (K) = L(G):
a
A

BBB

AAA

q0

SAB

b
B

1046

Man erkennt, dass Parser Bl


umchen sind!

Entwurfsfassung vom 27. September 2016

58

3.2. KELLERAUTOMATEN

Nichtdet. Parser

1047

Lemma 3.42: Zu jeder kfG G gibt es einen NKA K mit L(G) = L (K ).


Beweisskizze. Sei G = (, V, P , S) eine kfG. Wir konnen davon ausgehen, dass G in
CNF ist, falls L(G) behandeln wir diesen Fall separat. Wir definieren einen NKA
K wie folgt:
K = (, {q0 }, V, , q0 , S, ),
wobei
= {(q0 , a, A, q0 , ) | A a P } {(q0 , , A, q0 , BC) | A BC P }

1049

f
ur alle a und A V .
Es gilt L (K) = L(G).
Falls L(G) entfernen wir die Epsilon-Regel und transformieren die Grammatik in
eine CNF Grammatik f
ur L(G) \ {}. Abschlieend f
ugen wir dem Produktionssystem
noch die Regel S hinzu. Nun kann die Transformation wie zuvor erfolgen. Dem

Automat wird zum Schluss noch ein entsprechender Ubergang


hinzugef
ugt:

1048

:= {(q0 , , q0 , S, )}
1050

Lemma 3.43: Zu jedem NKA K gibt es eine kfG G mit L(K ) = L(G).

1052

Ohne Beweis. siehe z.B.[VW11, S.209]

DR
AF

1051

exponentielles
Wachstum der
Konfigurationen
eines Parsers

1053
1054

Beispiel 3.44: Als Beispiel f


ur das exponentielle Wachstum der Anzahl der Konfigurationen eines Parsers betrachen wir den folgenden Ausschnitt eines Parsers:
a
1

a
0

a
111

...

q0

a
110

1062

Dieser Parser-Ausschnitt verarbeitet Binarzahlen beliebiger Lange mit f


uhrender 1.
W
ahrend ein Wort der Lange 1 oder 2 nur 2 mogliche Konfigurationen liefert, gibt es
f
ur ein Wort der L
ange 3 bereits 4 mogliche Konfigurationen und f
ur ein Wort der Lange
4 existieren 8 m
ogliche Konfigurationen; allgemein generiert der Parser f
ur Worter der
L
ange k (k > 1) sogar 2k1 mogliche Konfigurationen.
Bereits f
ur ein Programm mit nur 100 Zeichen erhalten wir auf diese Weise also 299
m
ogliche Konfigurationen - diese Konstruktion ist f
ur eine deterministische Simulation
damit nicht praxistauglich.

1063

3.2.1

1055

1056
1057
1058
1059

1060

1061

1064
1065
1066
1067
1068

Deterministisch kontextfreie Sprachen

F
ur kontextfreie Sprachen haben wir gesehen, dass das Wortproblem mit dem CYKAlgorithmus gel
ost werden kann5 , und dass mit NKA ein Parser f
ur diese Sprachen
existiert. Die Anzahl der moglichen Konfigurationen eines NKA kann exponentiell von
der Gr
oer der Eingabe abhangen (vgl. Bsp. 3.44); daher ware es zu bevorzugen, wenn
man einen deterministischen Parser verwenden konnte.
5 Wobei

der Aufwand kubisch in der Gr


oe der Eingabe ist.

Entwurfsfassung vom 27. September 2016

59

3.2. KELLERAUTOMATEN

Deterministischer
Kellerautomat
DKA

Definition 3.45: Ein DKA ist definiert wie ein NKA


K = (, Q, , , q0 , , F )
wobei zu
atzlich gefordert wird, dass
|(q, a, A)| + |(q, , A)| 1

Deterministisch
kontextfreie
Sprache

1070
1071

1072
1073

1074
1075
1076

1077
1078

1079

Definition 3.46: Sei L = L(K ) f


ur einen DKA K . Dann heit L deterministisch
kontextfrei.
Lemma 3.47: Jede regulare Sprache L ist deterministisch kontextfrei. Diese Teilmengenbeziehung ist echt.
Beweis. Sei M der DEA mit L(M ) = L. Dieser kann zu einem DKA erweitern werden,
der seinen Keller ignoriert.
Die Sprache {an bn | n N} ist deterministisch kontextfrei, aber nicht regular.
Satz 3.48: Nicht jede kontextfreie Sprache ist deterministisch kontextfrei, es besteht
eine echte Teilmengenbeziehung.
Beweis. (ohne Beweis)
Man kann beweisen, dass die Sprache L = {wwR | w } nicht deterministisch
kontextfrei, wohl aber kontextfrei ist.

DR
AF

1080

f
ur alle q Q, A und a .

1069

1081

1082

1083

1084

1085

1086

1087

1088
1089

1090

1091

1092
1093

1094

1095

1096

Lemma 3.49: F
ur deterministisch kontextfreie Sprachen gelten die folgenden Abschlusseigenschaften:
1. Ist L deterministisch kontextfrei, dann ist auch das Komplement L deterministisch kontextfrei.

2. Ist L deterministisch kontextfrei und L0 regular, dann ist L L0 deterministisch


kontextfrei.
3. Deterministisch kontextfreie Sprachen sind nicht abgeschlossen unter Durchschnitt,
Vereinigung, Konkatenation und Kleene-Stern.

Beweis. (ohne Beweis).

Der in Lemma 3.42 konstruierte Parser verwendete die Akzeptanz bei leerem Keller zur
Sprachdefinition. Man kann sich daher die Frage stellen, ob dies auf f
ur DKAs moglich
ist.
Lemma 3.50: Ist L = L (K) f
ur einen DKA K, dann ist L deterministisch kontextfrei,
d.h. L = L(K 0 ) f
ur einen DKA K 0 .

Beweis. Wir k
onnen die Konstruktion aus Lemma 3.40 anwenden:
Sei K = (, Q, , , q0 , , ) ein NKA, definiere:
K 0 = (, Q {q00 , qf }, {0 }, 0 , q00 , , {qf }),

wobei 0
/ , q00 , qf
/Q
0 = {(q00 , , , q0 , 0 )}
{(q, , 0 , qf , ) | q Q}

1098

Der Automat K 0 ist deterministisch und erf


ullt die geforderten Eigenschaften (vgl. Lemma 3.40).

1099

Die Umkehrung gilt, anders als bei NKAs, f


ur DKAs nicht:

1097

1100
1101

Lemma 3.51: Die Menge der Sprachen, die von DKAs bei leerem Keller akzeptiert
werden, ist eine echte Teilmenge der deterministisch kontextfreien Sprachen.
Entwurfsfassung vom 27. September 2016

60

3.2. KELLERAUTOMATEN

1102
1103
1104
1105
1106
1107
1108
1109

Pr
afixeigenschaft

Beweis. (ohne Beweis)


Idee: Ist L = L (K) f
ur einen DKA K und w L, dann gehort jede Verlangerung
von w zwangsl
aufig nicht zu L, weil nach der Abarbeitung von w der Keller bereits leer
ist.
Die Eigenschaft, dass Verlangerungen von Wortern aus der Sprache nicht zur Sprache
geh
oren, nennt man Pr
afixeigenschaft. Es gibt Sprachen, die die Prafixeigenschaft nicht
erf
ullen, die von DKAs akzeptiert werden. Daher gilt hier eine echte Teilmengenbeziehung.

1111

Definition 3.52: Eine Sprache L hat die Prafixeigenschaft, wenn f


ur alle w L
und x 6= w Pr
afix von w gilt: x 6 L.

1112

Lemma 3.53: Sei K ein DKA, dann gilt: L (K) hat die Prafixeigenschaft.

1110

Beweis. Sei K = (, Q, , , q0 , , ) und w L (K ), w = xy, x , y + .


Angenommen x L (K ), dann gilt:

Da K ein deterministischer Automat ist, gilt:

(q0 , x, ) ` (q, , )

(q0 , xy, ) ` (q 0 , y, )

1114

Damit w
urde K f
ur die Eingabe w mit dem Restwort y 6= anhalten und somit w = xy
verwerfen.

1115

Umgekehrt gilt:

DR
AF

1113

1117

Lemma 3.54: F
ur jede deterministisch kontextfreie Sprache L mit der Prafixeigenschaft
gibt es einen DKA K mit L (K ) = L.

1118

Beweis. (ohne Beweis)

1116

1119
1120

1121

1122

1123

Lemma 3.55: Die Menge der regularen Sprachen und die Menge der deterministisch
kontextfreien Sprachen mit Prafixeigenschaft ist unvergleichbar.

Beweis. Die Aussage bedeutet, dass es sowohl deterministisch kontextfreie Sprachen


mit Pr
afixeigenschaft gibt, die nicht regular sind (z.B. {an bn }), als auch regulare Sprachen, die die Pr
afixeigenschaft nicht besitzen (z.B. {an bk }).

1125

Lemma 3.56: Ist L eine deterministisch kontextfreie Sprache und $ 6 , dann


ist L $ eine deterministisch kontextfreie Sprache mit der Prafixeigenschaft.

1126

Beweis. Offensichtlich.

1127

3.2.2

1124

1128

1129
1130

LR(k)-Grammatiken

Bevor wir formal definieren, wie LR(k)-Grammatiken und insbesondere LR(0)-Grammatiken


definiert und geparsed werden konnen, veranschaulichen wir die Vorgehensweise an einem ausf
uhrlichen Beispiel.
Beispiel 3.57: Wir betrachten die folgende Grammatik, die die Struktur eines Programms nachahmen soll:
G = (, V, P, S)
= {{, d, a, }, ;}
V = {S, A, D}
P = {S {D;A},
D D; d | d
A A; a | a}

1131

Zur besseren Lesbarkeit sind die Terminalbuchstaben farbig hervorgehoben.


Entwurfsfassung vom 27. September 2016

61

3.2. KELLERAUTOMATEN

Eine Beispielableitung ist


S {D;A} {D;A; a} {D;a; a} {d;a; a}
1132
1133
1134

Dabei handelt es sich um eine Rechtsableitung, da immer die rechteste Variable als
Erste ersetzt wurde.
Der Ableitungsbaum f
ur w = {d;a; a} sieht wie folgt aus:
S

DR
AF

1135
1136

1137

1138

1139
1140

Dieser repr
asentiert auch die Rechtsableitung des Wortes w aus der Grammatik G.
Die Rechtsableitung kann wie folgt konstruiert werden, wenn das Wort von links nach
rechts Buchstabe f
ur Buchstabe betrachtet wird:
Starte mit dem leeren Wort v =

Nimm so lange einen weiteren Buchstaben von w zu v hinzu (SHIFT), bis ein
innerer Konten k existiert, von dem alle Kinder bereits in v enthalten sind.

1142

Wenn dies der Fall ist, entferne alle Kinder von k und ersetze diese in v durch die
Beschriftung von k (REDUCE).

1143

Wiederhole dies bis die Wurzel entfernt wurde.

1141

Abbildung 3.3: Nachdem das Teilwort v = {d gelesen wurde ist der Teilbaum unter
dem rot markierten Knoten vollstandig und kann wie beschrieben entfernt werden. Das
Wort v wird entsprechend aktualisiert zu v = {D. Diese Operation wird als REDUCEOperation bezeichnet und entspricht einer Anwendung der Regel D d aus dem
Produktionssystem.

1144
1145

Nun kann die Eingabe weiter geshiftet werden, bis die nachste REDUCE-Operation
m
oglich ist:

Entwurfsfassung vom 27. September 2016

62

3.2. KELLERAUTOMATEN

Abbildung 3.4: Nachdem das Teilwort v = {D; a bearbeitet wurde ist der Teilbaum
unter dem rot markierten Knoten vollstandig und kann wie beschrieben entfernt werden.
Das Wort v wird entsprechend aktualisiert zu v = {D; A. Diese Operation entspricht
einer Anwendung der Regel A a aus dem Produktionssystem.

DR
AF

Abbildung 3.5: Nachdem das Teilwort v = {D; A; a bearbeitet wurde ist der Teilbaum
unter dem rot markierten Knoten vollstandig und kann wie beschrieben entfernt werden.
Das Wort v wird entsprechend aktualisiert zu v = {D; A. Diese Operation entspricht
einer Anwendung der Regel A A; a aus dem Produktionssystem.

1146
1147

1148

1149

Nachdem der letzte Buchstabe } gelesen wurde, sind alle Kinder des Startknoten
vorhanden und das Wort wird akzeptiert. Die Regel, die bei diesem ACCEPT-Schritt
angewendet wird, ist: S {D; A}.
R
uckw
arts ergibt sich durch Anwenden der Regeln die Rechtsableitung:
S R {D;A} R {D;A; a} R {D;a; a} R {d;a; a}

1150
1151

1152
1153

1154
1155
1156

1157

Soll ein Parser, d.h. ein DKA KG , diese Ableitung konstruieren, um zu entscheiden,
ob ein Wort s zu L(G) gehort, dann kann er dabei selbstverstandlich nicht auf den
Syntaxbaum zur
uckgreifen (da dieser ja erst aufgebaut werden soll). Im folgenden wird
die Vorgehensweise dargestellt, wie KG dies umsetzt. Hierzu verwenden wir den Begriff
der sogenannten Items. Ein Item ist eine Regel des Produktionssystems, die mit der
Information kombiniert ist, welche Buchstaben (oder Variablen) der rechten Seite der
Regel am Ende der bereits bearbeiteten Eingabe vorgekommen.
Also z.B. steht
[S { D;A}]
f
ur die Regel S {D;A} und daf
ur, dass aus der Eingabe zuletzt ein { gelesen wurde.
Alle m
oglichen Items, die aus P gebildet werden konnen, sind daher:
Items G = {[S {D;A}], [S {D;A}], [S {D;A}], [S {D;A}],
[S {D;A}], [S {D;A}],
[D D;d], [D D;d], [D D;d], [D D;d],
[D d], [D d],
[A A;a], [A A;a], [A A;a], [A A;a],
[A a], [A a]}

Entwurfsfassung vom 27. September 2016

63

3.2. KELLERAUTOMATEN

Je nachdem was zuletzt aus der Eingabe gelesen wurde (und welche Regeln der Ableitung bereits gefunden wurden) konnen unterschiedliche dieser Items aus Items G g
ultig
oder nicht g
ultig sein. Sind zu Beispiel aktuell die Items
[S {D;A}], [D D;d], [D d]

(3.5)

g
ultig und wird als n
achstes aus der Eingabe ein d gelesen, so gibt es nur ein g
ultiges
Nachfolge-Item
[D d]
1159
1160
1161

denn der Punkt muss u


uber wandern, was nur beim dritten Item
ber ein d hin
in (3.5) m
oglich ist.
Wir k
onnen uns die Vorgehensweise des Parsers KG nun anhand folgender Tabelle
veranschaulichen:
Keller

{
{d
{D
{ D;

restl.
Eingabe
{d;a;a}
d;a;a}
;a;a}
;a;a}
a;a}

{
{
{
{
{
{

;a}
;a}
a}
}
}

1162

a
A
A;
A; a
A
A}

Operation

[S {D;A}]
[S {D;A}], [D D;d], [D d]
[D d]
[S {D;A}], [D D;d]
[S {D;A}], [D D;d], [A A;a],
[A a]
[A a]
[S {D;A}], [A A;a]
[A A;a]
[A A;a]
[S {D;A}][A A;a]
[S {D;A}]

SHIFT
SHIFT
REDUCE
SHIFT
SHIFT

DR
AF

D;
D;
D;
D;
D;
D;

g
ultige Items

1158

1163

1164

1165

1166
1167

REDUCE
SHIFT
SHIFT
REDUCE
SHIFT
ACCEPT

Das dargestellte Vorgehen erklart sich wie folgt:

Initial sind alle Items g


ultig, die auf der linken Seite das Startsymbol enthalten
und bei denen der Punkt auf der rechten Seite ganz links ist.
Es gibt kein g
ultiges Item, bei dem der Punkt ganz rechts vorkommt, daher wird
eine SHIFT-Operation ausgef
uhrt.
Es wird ein { auf den Keller gelegt, daher andert sich die Menge der g
ultigen
Items zun
achst zu:
{[S {D;A}]}
Nun steht ein Punkt vor einer Variablen. Hier greift eine Sonderregel und es
werden alle initialen 6 Items f
ur diese Variable hinzugef
ugt. F
ur die Menge der
g
ultigen Items ergibt sich daher:
{[S {D;A}], [D D;d], [D d]}

1168
1169

Nun gibt es wieder kein Item, in dem der Punkt ganz rechts vorkommt. Daher
wird SHIFT ausgef
uhrt.
F
ur die Menge der g
ultigen Items ergibt sich nun:
{[D d]}

1170
1171

Es gibt ein g
ultiges Item, bei dem der Punkt ganz rechts ist, also wird eine
REDUCE-Operation durchgef
uhrt.
6 Initial

werden Items genannt, wenn der Punkt auf der rechten Seite der Regel ganz links steht.

Entwurfsfassung vom 27. September 2016

64

3.2. KELLERAUTOMATEN

Alle Buchstaben und Variablen, die im betreffenden Item auf der rechten Seite
vorkommen, werden vom Keller genommen, d.h. es wird in der Tabelle in die
entsprechende Zeile zur
uckgesprungen. Damit andern sich auch die g
ultigen Items
entsprechend zu:
{[S {D;A}], [D D;d], [D d]}
Nun wird die Variable D auf der linken Seite des Items auf den Keller gelegt und
die g
ultigen Items
andern sich entsprechend zu:
{[S {D;A}], [D D;d]}
Dieses Vorgehen wird so lange fortgesetzt, bis im letzten Schritt das Item
[S {D;A}]

1173
1174

1175

Die jeweils g
ultigen Items konnen durch einen endlichen Automaten beschrieben werden

(genau genommen durch dessen Zustande und Ubergangsfunktion).


Der Automat kann zun
achst als -erweiterter NEA

DR
AF

1176

g
ultig ist. Da dieses Item den Punkt auf der rechten Seite hat und auf der linken
Seite das Startsymbol besitzt, wird nun ein ACCEPT durchgef
uhrt und der Keller
entleert, was zur Akzeptanz des Worts f
uhrt.

1172

IG = ( V, Items G , I , I0 , )

1177

beschrieben werden7 :

[S {D;A}]

IG

[S {D;A}]

[D d]

[A a]

[S {D;A}]

[A A;a]
A

[D D;d]

[D D;d]
;

[D D;d]

[A A;a]
;

[S {D;A}]

[S {D;A}]

[D d]

[A a]

[D D;d]

[A A;a]

[S {D;A}]

[A A;a]

1178

Durch Epsilon-Elimination und Potenzmengenkonstruktion kann der Automat in einen


deterministischen Automaten
Items G b
Ic
, I , I0 , )
G = ( V, 2
1179

umgewandelt werden.
7 Die

Menge der Anfangszust


ande wird zu einem sp
ateren Zeitpunkt definiert. Die Endzustandsmenge kann leer bleiben, da der Automat nicht als Akzeptor eingesetzt wird, sondern nur seine

Ubergangsfunktion,
quasi als Unter-Automat, verwendet wird.

Entwurfsfassung vom 27. September 2016

65

3.2. KELLERAUTOMATEN

Ic
G

[S {D;A}]
{
[S {D;A}]
[D D;d]
[D d]

[D d]

D
[S {D;A}]
[D D;d]
[A a]

[S {D;A}]
[D D;d]
[A a]
[A A;a]

[D D;d]

[S {D;A}]
[A A;a]
;
[A A;a]

[S {D;A}]

[A A;a]

DR
AF

1180

1181
1182

1183
1184

Nachdem wir uns die Vorgehensweise beim parsen von LR(0)-Grammatiken beispielhaft
veranschaulicht haben, definieren wir nun formal zunachst wie LR(0)-Grammatiken geparsed werden und leiten danach daraus ab, wie LR(0)-Grammatiken definiert werden
k
onnen.
Sei im folgenden
G = (, V, P, S)

eine kontextfreie Grammatik mit der (noch zu definierenden) LR(0)-Eigenschaft und


P = {p1 , . . . , pn }

wobei

p 1 = A1 y 1
..
.

Ai V und yi ( V )

pn = An yn

Wir gehen also davon aus, dass die Grammatik G heit und ein Produktionssystem P
mit n Regeln besitzt. Jede der Regeln hat die Form
p i = Ai y i ,

1185

|yi | = ni ,

yi = yi,1 . . . yi,ni

Regel i hat also auf der rechten Seite der Regel ni Buchstaben yi,1 . . . yi,ni .
Definition 3.58: Sei pi = Ai yi eine Regel der Grammatik G. Ein Item Ii,j f
ur G

ist ein Paar (pi , j), 0 j ni . Ublich


ist die Notation:

Item, Items G ,
initiales Item,
vollst
andiges Item

Ii,j = [Ai yi0 yi00 ],

yi0 = yi,1 . . . yi,j1 ,

yi00 = yi,j . . . yi,ni

Die Menge aller Items f


ur G ist
Items G = {Ii,j | 1 i n, 0 j ni }
1186

Wir nennen ein Item initial, falls j = 0 und vollst


andig falls j = ni .

Entwurfsfassung vom 27. September 2016

66

3.2. KELLERAUTOMATEN

Beispiel 3.59: F
ur die Regel p2 = S {D;A} existieren sechs Items (|p2 | = n2 = 5):
I2,0 = [S {D;A}]
I2,1 = [S { D;A}]
I2,2 = [S {D ;A}]
I2,3 = [S {D; A}]
I2,4 = [S {D;A }]
I2,5 = [S {D;A}]
1187
1188
1189

Wie wir in Beispiel 3.57 gesehen haben reprasentiert der Punkt innerhalb der Items,
dass die Buchstaben bis zum Punkt am Ende der bisher bearbeiteten Eingabe vorkommen.

Definition 3.60: Ein Item I = [A y 0 y 00 ], I Items G heit g


ultig f
ur ein Wort
w ( V ) , wenn y 0 Suffix von w ist und wenn w Prafix einer Ableitung in G sein
kann. Die Menge der f
ur w g
ultigen Items notieren wir als:

g
ultiges Item,
Items(w)

Items(w) = {[A y 0 y 00 ] Items G | w = vy 0 , S wy 00 z, z , v ( V ) }


1190

Beispiel 3.61: Betrachten wir erneut Beispiel 3.57:


F
ur das Wort:w = {D ist

DR
AF

Items(w) = {[S {D;A}], [D D;d]}

Weil sowohl {D als auch D Suffix von w sind. Auerdem gibt es jeweils eine Ableitung:
S {D ;A} = y 0 y 00 ,
|{z} |{z}
y0

v = ,

z=

y 00

und

S { |{z}
D ;d ;a} = vy 0 y 00 z,
|{z}
0
y

v = {,

z = ;a}

y 00

Bemerkung 3.62: F
ur das leere Wort gilt, Items() enthalt alle Items der Form
[A y 00 ] f
ur die es eine Ableitung
S Az y 00 z

1193

mit z gibt. Offensichtlich sind alle Items der Form [S y 00 ] in Items(). Die
weiteren Items dieser Menge konnen nach der folgenden Regel zur Bestimmung der
g
ultigen Items bestimmt werden.

1194

Lemma 3.63: Sei G wie zuvor. Items(w) kann wie folgt induktiv definiert werden:

1191
1192

1195

1196

1197

1198
1199

IG , Ic
G,
Automat f
ur
g
ultige Items

(i) Alle Items der Form [S y 00 ] sind in Items().

(ii) Ist X ( V ) und [A y 0 Xy 00 ] Items(w)


dann ist [A y 0 X y 00 ] Items(wX)

(iii) Ist X V und [A y 0 Xy 00 ] Items(w),


dann sind alle Items der Form [X y] Items(w)
Definition 3.64: Wir definieren den -erweiterten NEA
IG = ( V, Items G , I , I0 , )
I0 = Items()
F
ur X ( V )
([A y 0 Xy 00 ], X) = {[A y 0 X y 00 ]}

Entwurfsfassung vom 27. September 2016

67

3.2. KELLERAUTOMATEN

F
ur X V
([A y 0 Xy 00 ], ) = {I Items G | I = [X y], y ( V ) }

Den Automaten, der sich ergibt, wenn man -Uberg


ange eliminiert und danach eine Potenzmengenkonstruktion f
ur den erreichbaren Teil der Zustande durchf
uhrt, bezeichnen
wir mit
Q b
Ic
G = ( V, 2 , I , I0 , )
1200

REDUCE1201
REDUCE-Konflikt1202
SHIFT-REDUCE- 1203
Konflikt
1204

Beispiele zu IG und Ic
G finden sich in Beispiel 3.57.
Definition 3.65: Eine Grammatik G hat einen REDUCE-REDUCE-Konflikt, wenn
zwei vollst
andige Items in einem Zustand von Ic
G vorkommen. Sie hat einen SHIFTREDUCE-Konflikt, wenn in einem Zustand von Ic
andige und unG gleichzeitig vollst
vollst
andige Items vorkommen.
LR(0)-Grammatiken enthalten keine REDUCE-REDUCE- oder SHIFT-REDUCE-Konflikte.

1206

Deterministischer Parser f
ur LR(0)-Grammatiken

1205

Wir geben die Arbeitsweise eines DKA K mit L (K) = L(G) an:
K = ( V, Q, , , q0 , Items(), )

DR
AF

= V 2Items G
1207
1208

Q und geben wir nicht explizit an, sondern beschreiben statt dessen die Arbeitsweise
des Parsers durch Pseudocode:

Algorithmus 8 LR(0)-Parser

Require: w = a1 a2 . . . am , LR(0)-Grammatik G = (, V, P, S), DEA Ic


G = (
Q b
V, 2 , I , I0 , )
push(Items())
i := 1
loop
I := top()
if I = {[S y]} then
entleere den Keller
else if I = {[A y]} then
f
uhre 2 |y| mal pop() aus
I := top()
push(A)
push(bI (I, A))
else if I 6= i |w| then
push(ai )
push(bI (I, ai ))
i := i+1
else
halte verwerfend an
end if
end loop

1209
1210
1211

Beispiel 3.66: Angewendet auf die Grammatik und das Beispielwort aus Beispiel 3.57
ergibt sich folgendes Ergebnis:
Der DEA Ic
G hat die folgende Gestalt:

Entwurfsfassung vom 27. September 2016

68

3.2. KELLERAUTOMATEN

Ic
G

I0

I1

I2

d
I6

I3
d

I7

a
I8

I4

I5

}
I9

a
I10

1212

wobei:
I0 = {[S {D;A}]} = Items()
I1 = {[S {D;A}], [D D;d], [D d]}
I2 = {[S {D;A}], [D D;d]}
I3 = {[S {D;A}], [D D;d], [A a], [A A;a]}
I4 = [S {D;A}], [A A;a]}

I5 = {[A A;a]}
I6 = {[D d]}
I7 = {[D D;d]}
I8 = {[A a]}
I9 = {[S {D;A}]}

DR
AF

I10 = {[A A;a]}

1213

F
ur das Eingabewort w = {d;a;a} ergibt sich:
Keller

I0

I0

I0 {
I0 {I1

I1

I0 {I1 d
I0 {I1 dI6

I6

I0 {I1 dI6

I1

I0 {I1 D
I0 {I1 DI2

I2
I0 {I1 DI2 ;
I0 {I1 DI2 ;I3
4

Anweisung
push(I0 )
i := 1
I := top()
push(a1 )
push(bI (I0 , {))

i := i + 1
end loop
I := top()
push(a2 )
push(bI (I1 , d))
i := i + 1
end loop
I := top()
2 pop()
I := top()
push(D)
push(bI (I1 , D))
end loop
I := top()
push(a3 )
push(bI (I2 , ;))
i := i + 1
end loop

Entwurfsfassung vom 27. September 2016

69

3.2. KELLERAUTOMATEN

I3
I0 {I1 DI2 ;I3 a
I0 {I1 DI2 ;I3 aI8
5
I8
I0 {I1 DI2 ;I3
I3
I0 {I1 DI2 ;I3 A
I0 {I1 DI2 ;I3 AI4
I4
I0 {I1 DI2 ;I3 AI4 ;
I0 {I1 DI2 ;I3 AI4 ;I5
6
I5
I0 {I1 DI2 ;I3 AI4 ;I5 a
I0 {I1 DI2 ;I3 AI4 ;I5 aI10

DR
AF

Anweisung
I := top()
push(a4 )
push(bI (I3 , a))
i := i + 1
end loop
I := top()
2 pop()
I := top()
push(A)
push(bI (I3 , A))
end loop
I := top()
push(a5 )
push(bI (I4 , ;))
i := i + 1
end loop
I := top()
push(a6 )
push(bI (I5 , a))
i := i + 1
end loop
I := top()
6 pop()
I := top()
push(A)
push(bI (I3 , A))
end loop
I := top()
push(a7 )
push(bI (I4 , }))
i := i + 1
end loop
I := top()
entleere Keller, ACCEPT

Keller

I10

I0 {I1 DI2 ;I3

I3

I0 {I1 DI2 ;I3 A


I0 {I1 DI2 ;I3 AI4

I4

I0 {I1 DI2 ;I3 AI4 }


I0 {I1 DI2 ;I3 AI4 }I9

I9

1215

Lemma 3.67: Die Laufzeit des beschriebenen LR(0)-Parser ist linear in der Lange
der Eingabe.

1216

Beweis. Siehe z.B. [AB02, S. 364].

1214

1217

1218

1219

LR(0)-Grammatik

Damit die beschriebene Vorgehensweise moglich ist, muss sich jeder Ableitungsschritt
in der Rechtsableitung jedes Wortes aus L(G) eindeutig aus dem Prafix ergeben, das
die Anwendung der betreffenden Regel ermoglicht. Formal:

Definition 3.68: Eine -freie kfG G = (, V, P, S) ohne nutzlose Variablen, bei der
S nicht auf der rechten Seite einer Regel vorkommt, erf
ullt die LR(0)-Bedingung, wenn
bei Ableitung des jeweils rechtesten Nichtterminals gilt: Falls
S R xAz R xyz,

A V, z , x ( V )

dann gibt es keine andere Rechts-Ableitung des Wortes xyz oder eines anderen Wortes
mit dem gleichen Pr
afix xy. D.h. f
ur alle x0 , y 0 ( V ) , z 0 , z 00 , A0 V gilt
S R x0 A0 z 0 R x0 y 0 z 0 = xyz 00
1220
1221
1222

x = x 0 , A = A0 , y = y 0

Lemma 3.69: Eine -freie kfG G = (, V, P, S) ohne nutzlose Variablen, bei der S
nicht auf der rechten Seite einer Regel vorkommt, erf
ullt die LR(0)-Bedingung gdw. G
weder REDUCE-REDUCE- noch SHIFT-REDUCE-Konflikte besitzt.
Entwurfsfassung vom 27. September 2016

70

3.2. KELLERAUTOMATEN

1223

Beweis. Siehe z.B. [AB02, S. 355].

1224

Lemma 3.70: F
ur eine Sprache L sind folgende Aussagen aquivalent:

1225

L = L (K) f
ur einen DKA K

1226

L ist eine deterministisch kontextfreie Sprache mit Prafixeigenschaft

1227

L = L(G) f
ur eine LR(0)-Grammatik G

1228

1229
1230

(ohne Beweis)s.
Beispiel 3.71: Nicht jede kfG f
ur eine deterministisch kontextfreie Sprache mit Prafixeigenschaft
ist eine LR(0)-Grammatik.
Betrachten wir hierzu erneut die Grammatik mit dem Produktionssystem:
P = {S {D;A},
D D; d | d

A A; a | a}

Diese ist nachweislich eine LR(0)-Grammatik, was u


ber den DEA Ic
G nachgewiesen
8
werden kann . Modifizieren wir P leicht, ohne die Sprache zu andern:
P 0 = {S {D;A},

DR
AF

D d; D | d

A A; a | a}

So gibt es f
ur das gleiche Prafix v = {d Ableitungen zu verschiedenen Wortern
S R {d ;D;a} R {d;d;a}
|{z}
v

und

S R {d ;a} = {d;a}
|{z}
v

1231

man erkennt, dass in P 0 ein SHIFT-REDUCE-Konflikt besteht.

1232

LR(k)-Grammatiken

1233
1234

1235
1236

1237
1238

w[k]

Definition 3.72: F
ur w = a1 . . . an , w definieren wir
(
a1 . . . ak falls k n
w[k] =
w
sonst

1239
1240
1241

LR(k)-Grammatik

Wir haben in Lemma 3.56 gesehen, dass sich zu jeder kfS L eine Sprache mit Prafixeigenschaft
L$ angeben l
asst und damit eine LR(0)-Grammatik f
ur L$ angegeben werden kann. Der
hierbei zu konstruierende DEA Ic
kann
dabei
jedoch
gro werden.
G
Verhindern kann man dies, indem man dem Parser erlaubt, k Buchstaben in die Zukunft zu schauen (Lookahead ). In der Praxis wird u
blicherweise ein Lookahead k = 1
verwendet.

Eine LR(k)-Grammatik ist definiert wie eine LR(0)-Grammatik mit der zusatzlichen
Forderung, dass die noch nicht bearbeiteten Suffixe z und z 00 in ihren ersten k Zeichen
u
ussen.
bereinstimmen m
Definition 3.73: Eine -freie kfG G = (, V, P, S) ohne nutzlose Variablen, bei der S
nicht auf der rechten Seite einer Regel vorkommt, erf
ullt die LR(k)-Bedingung, wenn
bei Ableitung des jeweils rechtesten Nichtterminals gilt: Falls
S R xAz R xyz,
8 RR-

A V, z , x, y ( V ) , A y P

und SR-Konfliktfreiheit.

Entwurfsfassung vom 27. September 2016

71

3.2. KELLERAUTOMATEN

dann gibt es keine andere Rechts-Ableitung des Wortes xyz oder eines anderen Wortes
mit dem gleichen Pr
afix xy und dem gleichen Lookahead. D.h. f
ur alle x0 , y 0 (
0 00

0
00
V ) , z , z , A V und z[k] = z [k] gilt
S R x0 A0 z 0 R x0 y 0 z 0 = xyz 00
firstk (x),
k-Lookaheadmenge

x = x 0 , A = A0 , y = y 0

Definition 3.74: F
ur eine LR(k)-Grammatik G = (, V, P, S) und ein Wort x
( V ) definieren wir die Menge der aus x ableitbaren Worter deren Lange k nicht
u
berschreitet, bzw. die Prafixe der Lange k von Wortern der Lange groer als k. Formal:
firstk : ( V )
F
ur x gilt
firstk (x) = x[k]

1242

F
ur x ( V ) gilt:
Wenn x w und w , |w| k dann gilt w firstk (x).

1244

Wenn x wy wobei y ( V )+ , w und |w| = k dann gilt w firstk (x).

1245

1243

F
ur k = 1 und ein Wort x lasst sich firstk (x) wie folgt berechnen:

DR
AF

Algorithmus 9 Berechnung der Lookaheadmenge first1 (x)


Require: x ( V ) , kfG G = (, V, P, S)
if x = und u = then
return {}
else if x then
return {x}
else if x V then
F := {}
for all x y1 . . . ym P do
F := F first1 (y1 . . . ym )
end for
return F
else if x ( V ) und x = z1 z2 . . . zn then
if
/ first1 (z1 ) then
return first1 (z1 )
else
return first1 (z1 ) first1 (z2 . . . zn )
end if
end if

1246

1247

LR(k)-Item,Items kG

Mit diesen Definitionen kann nun der Begriff der LR(k)-Items sowie die induktive Berechnung der g
ultigen Items angegeben werden:

Definition 3.75: Sei G = (, V, P, S) eine LR(k)-Grammatik, P = {p1 , . . . , pn } und


pi = Ai yi , i = 1, . . . , n. Ein LR(k)-Item ist ein Tripel
(pi , j, u) P N0

wobei 0 j |yi | und |u| k. Ublich


ist die Schreibweise:
[Ai yi0 yi00 , u]
1248
1249

wobei yi0 die ersten j Buchstaben von yi = yi0 yi00 enthalt.


Die Menge alle LR(k)-Items f
ur G bezeichnen wir mit Items kG .
Definition 3.76: Ein LR(k)-Item I = [A y 0 y 00 , u] heit g
ultig f
ur ein Wort
w ( V ) , wenn y 0 Suffix von w ist und wenn w Prafix einer Ableitung in G ist, die
folgende Eigenschaft besitzt:

g
ultiges
LR(k)-Item,
Itemsk (w)

S R xAz R xy 0 y 00 z,
1250

w = xy 0 , z[k] = u

Die Menge der f


ur w g
ultigen Items notieren wir als Items k (w).
Entwurfsfassung vom 27. September 2016

72

3.2. KELLERAUTOMATEN

1252

Wie f
ur LR(0)-Items kann eine induktive Charakterisierung der LR(k)-Item-Mengen
angegeben werden.

1253

Lemma 3.77: Sei G wie zuvor. Items k (w) kann wie folgt induktiv definiert werden:

1251

1254

1255
1256

1257
1258

(i) Alle Items der Form [S y 00 , ] sind in Items k ().


(ii) Ist X ( V ) und [A y 0 Xy 00 , u] Items k (w)
dann ist [A y 0 X y 00 , u] Items k (wX)
(iii) Ist X V , [A y 0 Xy 00 , u] Items k (w) und v firstk (y 00 u)
dann sind alle Items der Form [X y, v] Items k (w) wobei y ( V )

1262

Accept wenn [S y, ] I und u =

1263

Reduce wenn [A y, u] I und A 6= S

1264

Shift wenn [A y 0 y 00 , v] I und y 00 6= und u firstk (y 00 v)

1265

Error sonst.

1260

k c
k,
IG
, IG
Automat f
ur
g
ultige
LR(k)-Items

1261

Der Parser f
ur LR(k)-Grammatiken kann nun im Wesentlichen wie im LR(0)-Fall konstruiert werden. F
ur die Fallunterscheidung bzgl. der verschiedenen Schritte ergibt sich
(wobei I die aktuell g
ultige Itemmenge und u das aktuelle Lookahead)

1259

Definition 3.78: In Analogie zu Definition 3.64 definieren wir den -erweiterten NEA

DR
AF

k
IG
= ( V, I, Ik , I0 , )

I = Items kG

I0 = Items k ()

F
ur X ( V )

Ik ([A y 0 Xy 00 , u], X) = {[A y 0 X y 00 , u]}

F
ur X V

Ik ([A y 0 Xy 00 , u], ) = {I Items kG | I = [X y, v], y ( V ) , v first k (y 00 u)}

Den Automaten, der sich ergibt, wenn man -Uberg


ange eliminiert und danach eine Potenzmengenkonstruktion f
ur den erreichbaren Teil der Zustande durchf
uhrt, bezeichnen
wir mit
Q bk
k
Ic
G = ( V, 2 , I , I0 , )

g
ultige
LR(k)-Items

1266
1267

Beispiel 3.79: Die folgende LR(1)-Grammatik entspricht weitestgehend dem Beispiel


zur LR(0)-Grammatik, es wurde lediglich das Semikolon ; entfernt.
Das neue Produktionssystem ist gegeben durch
P = {S {DA}, D dD | d, A Aa | a}

1268
1269

Durch die Regel D dD erf


ullt die Grammatik nicht mehr der LR(0)-Bedingung, vgl.
Beispiel 3.71. Wir erhalten folgende g
ultige Items:

1270

Bezeichnung
I0
I1
I2

1271

I3
I4
I5
I6
I7
I8

g
ultige Items
{[S {DA}, ]}
{[S {DA}, ],
[D dD, a], [D d, a]}
{[S {DA}, ],
[A Aa, }], [A a, }]
[A Aa, a], [A a, a]}
{[D dD, a], [D d, a],
[D dD, a], [D d, a]}
{[D dD, a]}
{[A a, }], [A a, a]}
{[S {DA}, ], [A Aa, a], [A Aa, }]}
{[S {DA}, ]}
{[A Aa, a], [A Aa, }]}
Entwurfsfassung vom 27. September 2016

Lookahead

first1 (A}) = {a}


first1 (}) = {}}
first1 (a}) = {a}
first1 (a) = {a}

73

3.2. KELLERAUTOMATEN

1272

Der zugeh
orige DEA hat folgende Gestalt:
k
Ic
G

I0

I1
d

I3

I2
A

D
I6
a
I8
1274
1275

a
I5

}
I7

I4

1273

Wie im Falle des LR(0)-Parser geben wir die Arbeitsweise des deterministischen Kellerautomaten in Pseudocode an und verzichten auf eine formale Angabe des Automaten.

DR
AF

Algorithmus 10 LR(k)-Parser

Items k
k
k
G , b
Require: w = a1 a2 . . . am , DEA Ic
G = ( V, 2
I , I0 , )
push(I0 )
i := 1
loop
I := top()
u := (ai . . . am )[k]
if [S y, ] I then
// ACCEPT
else if [A y, u] I und A 6= S then
// REDUCE
f
uhre 2 |y| mal pop() aus
I := top()
push(A)
push(bIk (I, A))
else if [A y 0 y 00 , v] I und y 00 6= und u firstk (y 00 v) then
// SHIFT
push(ai )
push(bIk (I, ai ))
i := i+1
else
// ERROR
end if
end loop

LR(1)-Parsing

1276
1277
1278

Beispiel 3.80: Wir betrachten erneut die Grammatik aus Beispiel 3.79. Der Automat
k ur die g
Ic
ultigen Items ist im betreffenden Beispiel beschrieben. Der Algorithmus 10
G f
arbeitet f
ur die Eingabe: w = {da} = a1 . . . a4 wie in der folgenden Tabelle dargestellt:

Entwurfsfassung vom 27. September 2016

74

3.2. KELLERAUTOMATEN

1
I0
{
I0 {
I0 {I1
2
I1
d
I0 {I1 d
I0 {I1 dI3
3
I3
a
I0 {I1
I1

Kommentar

loop-Anfang
Shift-Operation ausf
uhren (wg. I, u)
loop-Ende
loop-Anfang
Shift (wg. I, u)
loop-Ende
loop-Anfang
Reduce ([D d, a] I, u = a)

loop-Ende
loop-Anfang

DR
AF

I0 {I1 D
I0 {I1 DI2

Anweisung
push(I0 )
i := 1
I := top()
u := (a1 . . . a4 )[1]
push({)
push(bIk (I, ai ))
i := i + 1
I := top()
u := (a2 . . . a4 )[1]
push(d)
push(bIk (I, ai ))
i := i + 1
I := top()
u := (a3 . . . a4 )[1]
2 pop()
I := top()
push(D)
push(bIk (I, D))
I := top()
u := (a3 . . . a4 )[1]
push(a)
push(bIk (I, a))
i := i + 1
I := top()
u := (a4 . . . a4 )[1]
2 pop()
I := top()
push(A)
push(bIk (I, A))
I := top()
u := (a4 . . . a4 )[1]
push(})
push(bIk (I, }))
i := i + 1
I := top()
u := (a5 . . . a4 )[1]

Keller

I0

I2

I0 {I1 DI2 a
I0 {I1 DI2 aI5

I5

I0 {I1 DI2

I2

I0 {I1 DI2 A
I0 {I1 DI2 AI6

I6

I0 {I1 DI2 AI6 }


I0 {I1 DI2 AI6 }I7

I7

Shift (wg. I, u)
loop-Ende
loop-Anfang
Reduce ([A a, }] I, u = })

loop-Ende
loop-Anfang
Shift (wg. I, u)
loop-Ende
loop-Anfang
Accept ([S {DA}, ] I, u = )

Entwurfsfassung vom 27. September 2016

75

1279

1280

Kapitel 4

Die Chomsky Hierarchie

Sprache vom Typ i1281 Definition 4.1: Sei G = (, V, P , S) eine Grammatik. G heit
vom Typ 0 wenn keine Einschrankungen beim Produktionssystem gemacht werden

1283

kontextsensitiv oder vom Typ 1, wenn f


ur alle Regeln u G v gilt: |u| |v|.

1284

kontextfrei oder vom Typ 2, wenn P V (V ) .

1285

regul
ar oder vom Typ 3, wenn P V ({} V ).

DR
AF

1282

1286

1287
1288

1289
1290
1291

4.1

Typ1 und Typ0 Sprachen

In Abschnitt 1.2 haben wir definiert, dass wir eine Grammatik vom Typ 0 nennen,
wenn keine Einschr
ankungen an das Produktionssystem gemacht werden und wir diese
kontextsensitiv oder vom Typ 1 nennen, wenn f
ur alle Regeln u G v gilt: |u| |v|. F
ur
Typ 1 Grammatiken gilt also, dass die linke Seite der Regeln stets kleiner sein muss als
die rechte.
Beispiel 4.2: Als Beispiel betrachten wir (vgl. [VW11, S.248,249]) die Sprache
L = {an bn cn | n N}

Diese Sprache ist nicht kontextfrei, wie wir in Bsp. 3.27 mit Hilfe des Pumping Lemma
f
ur kontextfreie Sprachen gezeigt haben. F
ur L kann eine Typ 1 Grammatik angegeben
werden. Die Idee ist dabei die folgende: Wir starten mit einer kontextfreien Grammatik
f
ur die Sprache {an (bc)n | n N} diese Grammatik hat das folgende Produktionssystem:
P = {S aSBC | aBC, B b, C c}
Die Buchstaben in jedem ableitbaren Wort sind von der richtigen Anzahl, lediglich die
Reihenfolge der bs und cs ist verkehrt. Mit Hilfe der (kontextsensitiven) Regel
BC CB

k
onnen wir diese Reihenfolge korrigieren. Wir f
ugen diese also zu P hinzu. Nun besteht
nur noch das Problem, dass zwar die Worter von L abgeleitet weren konnen, aber
auch immer noch W
orter, die nicht in L liegen, z.B. aaabccbcb. Indem wir die Regeln
C c, B b durch
aB ab, bB bb, bC bc, cC cc
ersetzen gelangen wir zu einer kontextsensitiven Grammatik f
ur L:
G = ({a, b, c}, {S, A, B, C}, P , S)
P = {S aSBC | aBC,
BC CB
aB ab, bB bb, bC bc, cC cc}
Entwurfsfassung vom 27. September 2016

76

4.2. CHOMSKY HIERACHIE

1292
1293

1294
1295
1296

RE

1297
1298

1299
1300

1301

Satz 4.3: Die Menge der kontextfreien Sprachen ist eine echte Teilmenge der Menge
der kontextsensitiven Sprachen.
Beweis. Offensichtlich ist jede kontextfreie Grammatik auch kontextsensitiv und wie
wir in den Beispielen 3.27 und 4.2 gesehen haben, ist L = {an bn cn | n N} kontextsensitiv, aber nicht kontextfrei.
Definition 4.4: Die Menge der Typ0 Sprachen u
ber einem Alphabet wird allgemein
mit RE bezeichnet1 .
Satz 4.5: Die Menge der kontextsensitiven Sprachen ist eine echte Teilmenge der
Typ0 Sprachen.
(ohne Beweis).

1302

Church-TuringThese

1304
1305

1306
1307

Satz 4.7: Die Klasse der Funktionen, f


ur die wir einen Algorithmus formulieren
k
onnen, stimmt mit der Klasse der Turing-berechenbaren Funktionen u
berein.
Bemerkung 4.8: Satz 4.7 kann man so lesen, dass es egal ist, in welcher Programmiersprache man programmiert. Die Programmiersprache darf nur nicht zu eingeschrankt
sein (eingeschr
ankt w
are z.B. Kellerautomat oder endlicher Automat).

DR
AF

1308

Satz 4.6: F
ur jede Typ0 Sprache L gibt es einen Algorithmus, der L akzeptiert.

1303

1309

4.2

Chomsky Hierachie

1310

Satz 4.9: RE ist abz


ahlbar.

1314

Beweis. Skizze: Alle Grammatiken konnen durchnumeriert (abgezahlt) werden, denn


sie bestehen aus endlich vielen Symbolen. Auerdem kann jeder Sprache L RE
mindestens eine Grammatik zugeordnet werden. Also kann jeder Sprache auch eine
eineindeutige Zahl zugeordnet werden.

1315

Satz 4.10: F
ur nichtleere Alphabete || 1 ist 2 u
berabzahlbar.

1311

1312
1313

1316
1317

1318
1319

Beweis. Wir beweisen die Aussage durch Diagonalisierung.

Sei L = 2 = {L|L } und L = {L1 , L2 , . . .} eine Abzahlung von L. In Beispiel 0.9, 8.1.d) haben wir gesehen, dass die Menge aller Worter u
ber abgezahlt
werden kann. Sei = {w1 , w2 , . . .} diese Abzahlung.
Wir definieren nun eine Menge von booleschen Werten
(
1 falls wj Li
bij =
0 sonst
Sei LD wie folgt definiert:

LD = {wi | bii = 0 }

1320
1321
1322
1323

1324
1325

1326
1327

d.h. wi LD gdw. wi 6 Li .
LD ist wohldefiniert und m
usste eine Nummer k in der Abzahlung L = {L1 , L2 , . . .}
haben. Sei also LD = Lk . Das Wort wk muss entweder zu LD gehoren, oder nicht. Wir
f
uhren beide F
alle zu einem Widerspruch:
wk LD da Lk = LD gilt auch wk Lk , also bkk = 1, also wk 6 LD = Lk = {wi
| bii = 0 }.
wk 6 LD da Lk = LD gilt auch wk 6 Lk , also bkk = 0, also wk LD = Lk = {wi
| bii = 0 }.
1 RE steht f
ur recursive enumerable, da solche Sprachen die Eigenschaft besitzen, rekursiv aufz
ahlbar
zu sein.

Entwurfsfassung vom 27. September 2016

77

TYP1 - UND TYP0 -SPRACHEN


4.3. AUTOMATENMODELLE FUR

Insgesamt ergibt sich der Widerspruch


wk LD wk 6 LD

1328

und somit ein Widerspruch zur Annahme, dass 2 aufgezahlt werden kann.

1329

Aus dem vorangegangenen Satz folgt:


Satz 4.11: F
ur nichtleere Alphabete gilt:

RE 2
Chomsky
Hierarchie

Satz 4.12: Wenn wir die Menge der Sprachen f


ur die es eine Grammatik vom Typ i
gibt mit TYP i bezeichnen, dann gilt:
TYP3 TYP2 TYP1 TYP0 2
Zwischen TYP3 und TYP2 liegen noch die deterministisch kontextfreien Sprachen.

1331

4.3

1332

4.3.1

Automatenmodelle fu
r TYP1 - und TYP0 -Sprachen
Turingmaschinen

Definition 4.13: Die einfachste Variante der Turingmaschine ist die deterministische
Einband-Turingmaschine (DTM oder kurz TM). Formal ist eine TM ein Tupel:

DR
AF

Deterministische
EinbandTuringmaschine

1330

T = (, Q, , , q0 , , F )

1333

Q ist eine Menge von Zustanden

1334

das Bandalphabet (niederschreibbare Buchstaben)

1335

das Eingabealphabet ( )

1336

die Ubergangsfunktion
legt das Verhalten der TM fest ( : Q Q R)

1337

q0 Startzustand (q0 Q)

1338

F Menge von Endzustanden (F Q)

1339

1340
1341

1342
1343

1344

Konfiguration,
Konfigurationsrelation `

wobei die Menge R definiert ist als: R = {, , }. Alle genannten Mengen m


ussen
endlich sein. enth
alt das Sonderzeichen , das nicht Teil der Eingabe sein darf (
\ ). Q und m
ussen durchschnittsfrei sein (Q = )2 .
Die Semantik von Turingmaschinen wird auf der Belegung des Bands definiert. Hier
bei muss man sich auch hier die aktuelle Position merken. Hinzu kommt noch der
aktuelle Zustand. Dies l
asst sich sehr kompakt durch Konfigurationen ausdr
ucken.
Definition 4.14: Eine Konfiguration ist ein Wort k = vqw bei dem  vw die
Band-Inschrift ergibt3 und das erste Zeichen von v und das letzte Zeichen von w nicht
 sind. q ist der aktuelle Zustand der TM und w0 das Zeichen, das gerade betrachtet
wird. Die Menge aller Konfigurationen von T ist
Conf(T ) = Q
Das schrittweise Verhalten von T gibt an, welche Konfigurationen von T aufeinander
folgen. Sei v = v0 v1 . . . vk und w = w0 w1 . . . wl dann gilt4
vqw ` xry

gdw.

(q, w0 )

2 Sonst

sind Konfigurationen von TMs nicht eindeutig!


Notation  beschreibt eine unendliche Zeichenkette aus s.
4 Sonderf
alle treten auf falls v oder w leer sind. Da das leere Band mit Blanks vorbelegt ist, identifizieren wir v = mit v =  (ebenso f
ur w).
3 Die

Entwurfsfassung vom 27. September 2016

78

TYP1 - UND TYP0 -SPRACHEN


4.3. AUTOMATENMODELLE FUR

wobei

v0 . . . vk raw1 . . . wl
v0 . . . vk ar w1 . . . wl
v0 . . . vk q w0 . . . wl `

v0 . . . r vk aw1 . . . wl

: (q, w0 ) = (r, a, )
: (q, w0 ) = (r, a, )
: (q, w0 ) = (r, a, )

Mehrere Schritte der TM beschreibt die reflexive transitive H


ulle `
k `0 k
k `n k 0 gdw. k `n1 k 00 und k 00 ` k 0
k ` k 0 gdw. k `n k 0 f
ur ein n N

1345

Definition 4.15: Eine Berechnung von T f


ur das Eingabewort w ist eine maximale
(nicht verl
angerbare) Folge

Berechnung

Falls f
ur k = vqw kein Ubergang
exisitert, also (q, w0 ) 6 , schreibt man k 6`.

q0 w ` v1 q1 w1 ` v2 q2 w2 ` . . .
1346

1347

von Konfigurationen. Es sind drei Falle moglich:


Die Berechnung ist unendlich.

DR
AF

Die Berechnung ist verwerfend, d.h. endet in einer Konfiguration vn qn wn , mit


qn
/F
q0 w ` vn qn wn 6`

1348

1349

T+1

Die Berechnung ist akzeptierend, d.h. endet in einer Konfiguration vn qn wn , mit


qn F .

Beispiel 4.16: Die Funktionsweise der Turingmaschine erlautern wir an einem Beispiel. Wir konstruieren eine TM T+1 zur Realisierung des Inkrements. T+1 arbeitet
auf bin
arcodierten Zahlen. Sie setzt das letzte Null-Bit der Zahl auf Eins und alle Bits
dahinter auf Null. Z.B.:
1

1
1
0 0

=41

z }| {
32 + 0 + 8 + 0 + 2 + 1
+
1
32 + 0 + 8 + 4 + 0 + 0

bzw.

Sei ar1 . . . a1 a0 die Bin


arzahldarstellung der Eingabezahl n. Sei ak das letzte N ull-Bit,
d.h. a0 = a1 = = ak1 = 1, ak = 0 und ab ak+1 sind die Werte egal.
n =

r1
X

aj 2j

also:

n+1=

j=0

r1
X

j=k+1

r1
X

aj 2j + 2k

j=k+1

aj 2j + 0 2k +

k1
X

1 2j

j=0

r1
X

j=k+1

aj 2j + 1 2k +

k1
X

0 2j

j=0

| {z }
2k 1

1350
1351
1352
1353
1354
1355
1356
1357

Man erkennt, dass alle Bits hinter ak auf Null gesetzt sind.
Band, Bandalphabet Die Turingmaschine T+1 verf
ugt u
ber ein beidseitig unendliches Band, das in Zellen unterteilt ist, von denen die TM nur jeweils nur eine Zelle
sieht5 . Jede Zelle kann ein Zeichen aus dem Alphabet = {0, 1, } aufnehmen, wobei
alle leeren Zellen mit dem besonderen Zeichen  beschrieben sind.
Zust
ande T+1 startet in Zustand q0 und das Band ist initial mit der Eingabe der
Turingmaschine beschrieben. Im vorliegenden Fall ist dies das Wort w = ar1 . . . a1 a0 .
Zur Rechnung verwendet T+1 weitere Zustande: Q = {q0 , q1 , q2 , q3 }.
5 Man spricht hier auch davon, dass die TM einen Schreib-/Lese-Kopf hat, der auf eine bestimmte
Zelle zeigt.

Entwurfsfassung vom 27. September 2016

79

TYP1 - UND TYP0 -SPRACHEN


4.3. AUTOMATENMODELLE FUR

Ubergangsfunktion
Das Programm der TM wird durch die Ubergangsfunktion

angegeben. Ublicherweise stellt man in Tabellenform dar:

q0
q1
q2
q3
1358
1359

1
(q0 , 1, )
(q1 , 0, )
(q2 , 1, )


(q1 , , )
(q3 , 1, )
(q3 , , )

Die Tabelle liest sich z.B. so: Wenn die TM in Zustand q1 ist und die aktuell betrachtete
Zelle eine 1 enth
alt, dann bleibt sie in Zustand q1 , u
berschreibt die 1 mit einer 0 und
betrachtet als n
achstes die linke Nachbar-Zelle.
q3 ist der einzige Endzustand, also F = {q3 }.
Beispielrechnung von T+1 f
ur das obige Rechenbeispiel arbeitet T+1 in folgenden Schritten: anfangs befindet sich die TM im Zustand q0 und das Band ist mit
101011 beschrieben. Die aktuell betrachtete Zelle enthalt die f
uhrende 1. Wir notieren
dies q0 101011 , wir notieren also den aktuellen Zustand links von der aktuell
betrachteten Zelle und lassen die unendlich vielen Blanks weg. Nun finden folgende

Uberg
ange (`) statt:

1360

0
(q0 , 0, )
(q2 , 1, )
(q2 , 0, )

q0 101011 ` 1q0 01011 ` 10q0 1011 ` 101q0 011 `

DR
AF

1010q0 11 ` 10101q0 1 ` 101011q0  `


Nun ist die TM am Ende der Eingabe angekommen. Sie wechselt den Zustand und
u
berschreibt nun alle Einsen mit Nullen.
10101q1 1 ` 1010q1 10 ` 1010q1 000 `
Die letzte 0 ist gefunden, wird ersetzt und die TM muss nur noch zum Anfang der
Ausgabe
101q2 100 ` 10q2 1100 ` 1q2 01100 ` q2 101100 `
q2 101100 ` q3 101100

akzeptierte Sprache
von T

1361

LT = { w | w ` vn qn wn mit qn F }

Satz 4.18: Sei L , dann sind die folgenden Aussagen aquivalent:

1362

L ist eine Sprache aus T yp0 , d.h. es gibt eine Grammatik G mit L = L(G).

1363

Es existiert eine Turingmaschine T mit L = L(T ).

1364

LBA, linear
beschr
ankter
Automat

Definition 4.17: Sei T = (, Q, , , q0 , , F ). Die von T akzeptierte Sprache ist

Beweis. Siehe z.B. [AB02, S.211].

1367

Definition 4.19: Eine Turingmaschine, deren Band durch die Lange der Eingabe
beschr
ankt ist wird LBA genannt. Stot die TM an das Ende des Bandes wird der
Kopf nicht weiter bewegt.

1368

Satz 4.20: Sei L , dann sind die folgenden Aussagen aquivalent:

1365
1366

1369

L ist eine Sprache aus T yp1 , d.h. es gibt eine Grammatik G mit L = L(G).

1370

Es existiert ein LBA T mit L = L(T ).

1371

Beweis. Siehe z.B. [AB02, S.214].

Entwurfsfassung vom 27. September 2016

80

1372

1373

Ausblick
5.1

Berechenbarkeit

1374

Kapitel 5

Definition 5.1: Eine Turingmaschine T berechnet die Funktion fT :

Turing
Berechenbarkeit

fT (w) = v gdw. es existiert eine akzeptierende Berechnung q0 w ` xqy 6`

DR
AF

wobei x beliebig, q F und y beginnt mit v, d.h.


y = vv 0

v , v 0

Wir setzen fT (w) = falls die Berechnung von T f


ur das Eingabewort w verwerfend
oder unendlich ist. Eine Funktion1 f : heit Turing-berechenbar, wenn es eine
TM T gibt mit
f = fT
Eine Funktion f : Nk N heit Turing-berechenbar , wenn es eine Turingmaschine T
gibt, die aus einer Bin
arcodierung des Eingabetupels die Binarcodierung des Funktionsergebnisses berechnet:
fT (bink (x1 , . . . , xk )) = bin(y)

wenn

y = f (x1 , . . . , xk )

wobei bin(. . .) die Bin


arcodierung der Argumente liefert:
val : {0, 1} N,

val(bn . . . b0 ) =

n
X

bi 2i ,

bin = val1

i=0

Die k-stellige Codierfunktion definieren wir als:


bink : Nk {0, 1, #}

bink (x1 , . . . , xk ) = bin(x1 )# #bin(xk ) valk = bin1


k

Eine Funktion f : Nk N ist also Turing-berechenbar, wenn es eine Turingmaschine


T gibt, so dass:
f = val fT bink

Church-TuringThese

1376

Satz 5.2: Die Klasse der intuitiv berechenbaren Funktionen, d.h. die f
ur die man einen
Algorithmus angeben kann, ist identisch mit den Turing-berechenbaren Funktionen.

1377

5.2

1375

Entscheidbarkeit

Entscheidbarkeit, 1378
Semientscheidbar- 1379
keit
1380

Definition 5.3: Eine Menge L heit semi-entscheidbar, genau dann wenn es eine
Turingmaschine T gibt mit L(T ) = L.
Eine Menge L heit entscheidbar, wenn L und L semi-entscheidbar sind.

rekursiv aufz
ahlbar1381

Definition 5.4: L heit rekursiv aufz


ahlbar, wenn
1 Die

Funktion kann partiell sein.

Entwurfsfassung vom 27. September 2016

81

5.2. ENTSCHEIDBARKEIT

1382

L=
oder wenn es eine berechenbare totale Funktion2 f : N gibt, so dass
L = {f (0), f (1), . . .} = f (N)

1383

Satz 5.5: L ist semi-entscheidbar gdw. L rekursiv aufzahlbar ist.

1384

Beweis. (ohne Beweis)


Lemma 5.6: Eine Menge L ist entscheidbar gdw. ihre charakteristische Funktion L
berechenbar ist (vgl. Def. 0.3).

1387

Beweis. (ohne Beweis)

1388

Lemma 5.7: Die Menge der Turingmaschinen ist abzahlbar.

1389

Beweis. Vgl. Beweis zu Satz 4.9.

universelle
Turingmaschine

1390
1391
1392

Definition 5.8: Es gibt eine Turingmaschine U , die als Eingabe die Nummer einer
Turingmaschine und eine Eingabe f
ur diese Turingmaschine erhalt und diese dann mit
der betreffenden Eingabe simuliert.
Definition 5.9: Das Selbstanwendungsproblem ist definiert als

H 0 = {p | Programm p halt bei Eingabe p}

DR
AF

Selbstanwendungsproblem H 0

1386

1385

1394

Wobei als Programme u


blicherweise Turingmaschinen verwendet werden. Aber auch

Java-Programme oder Ahnliches


konnte hier verwendet werden.

1395

Lemma 5.10: H 0 ist semientscheidbar.

1393

1397

Beweis. Man verwendet die universelle Turingmaschine U , um ein Programm mit sich
selbst als Eingabe zu simulieren und erhalt so einen Semientscheider f
ur H 0 .

1398

Lemma 5.11: H 0 ist unentscheidbar.

1396

Beweis. W
are H 0 entscheidbar, dann gabe es eine Turingmaschine T 0 , welche H 0 berechnet.
(
1 falls gilt: p halt bei Eingabe p
fT 0 (p) =
0 falls gilt: p halt nicht bei Eingabe p
Dann kann man aber auch diese Turingmaschine umbauen zu einer Maschine T , so
dass
(
falls fT 0 = 1
(d.h. lauft T endlos)
fT (p) =
0
falls fT 0 = 0
(d.h. T halt)

Nun kann folgender Widerspruch herbeigef


uhrt werden: Sei hierzu q der Programmcode
von T , dann gilt:
q H 0 T h
alt bei seinem eigenen Quellcode q
H 0 (q) = 1
fT 0 (q) = 1
fT (q) =
T h
alt nicht bei seinem eigenen Quellcode q
q 6 H 0

1399

1400

Lemma 5.12: H 0 ist nicht semi-entscheidbar.


2 Die

Funktion muss nicht injektiv sein.

Entwurfsfassung vom 27. September 2016

82

5.2. ENTSCHEIDBARKEIT

1403

Beweis. Da H 0 semi-entscheidbar ist, w


urde aus der Semi-Entscheidbarkeit von H 0 die
0
Entscheidbarkeit von H die Entscheidbarkeit von H 0 folgen, was im Widerspruch zu
Lemma 5.11 st
unde.

1404

Weitere wichtige unentscheidbare Probleme sind:

1401
1402

Software-Verifikation (Satz von Rice)

1406

Halteproblem (Programm bei beliebiger Eingabe)

1407

Postsches Korrespondenzproblem

1408

uvm.

DR
AF

1405

Entwurfsfassung vom 27. September 2016

83

LITERATURVERZEICHNIS

1410
1411
1412

1413
1414

1415
1416

1417
1418

[AB02] Alexander Asteroth and Christel Baier. Theoretische Informatik - eine


Einf
uhrung in Berechenbarkeit, Komplexit
at und formale Sprachen mit 101
Beispielen. Pearson Studium, 2002.
[HU80] J. Hopcroft and J. Ullman. Introduction to Automata Theory, Languages, and
Computation. Addison-Wesley, N. Reading, MA, 1980.
[Sch92] Uwe Sch
oning. Theoretische Informatik kurzgefat. BI Wissenschaftsverlag,
Mannheim, 1992.
[VW11] Gottfried Vossen and Kurt-Ulrich Witt. Grundkurs Theoretische Informatik
- eine anwendungsbezogene Einf
uhrung: f
ur Studierende in allen InformatikStudieng
angen (5. Aufl.). Vieweg+Teubner, 2011.

DR
AF

1419

Literaturverzeichnis

1409

Entwurfsfassung vom 27. September 2016

84

INDEX

Index
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432

1469
1470
1471
1472
1473
1474
1475
1476
1477

1478
1479
1480
1481

Band, 79
Bandalphabet, 78, 79
Berechenbarkeit
Turing, 81
Berechnung
akzeptierend, 79
einer TM, 79
unedlich, 79
verwerfend, 79

charakteristische Funktion, 3
Chomsky Hierarchie, 78
Chomsky Normalform, 49
CNF, 49

DR
AF

1433

F , 78
Conf(T ), 78
, 78
L(K ), 55
L (K ), 55
G , 9
G , 9
, 78
, 5
+ , 5
T+1 , 80
M , 3
, 78
DEA , 17
, 5
`, 78
`, 78
` , 79
bin, 81
bink , 81
val, 81
wr , 6

Aquivalenz
von NEAs, 20

Ubergangsfunktion,
78, 80
NEA, 19
erweiterte f
ur DEAs, 17

1420

1434

1435
1436
1437

1438

1439
1440

1441

1442
1443
1444

1445

1446

1482
1483
1484
1485
1486

1488

Eingabealphabet, 78
Endzustande, 78

1489

Fangzustand, 16

1487

1490
1491
1492

1447

1448
1449

1450
1451

1452

1453

1454
1455

1456

1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468

DEA, 14
Deterministisch kontextfreie Sprache, 60
DKA, 60
DTM, 78
Durchschnitt, 26

Grammatik, 8
-Freiheit, 44
kontextfrei, 42, 76
eindeutig, 44
mehrdeutig, 44
kontextsensitiv, 76
LR(0), 70
LR(k), 71
k-Lookaheadmenge, 72
Reduce-Reduce-Konflikt, 68
regular, 10, 76
Shift-Reduce-Konflikt, 68

Ableitung, 9
1493
Links-, 44
1494
Rechts-, 44
1495
Ableitungsbaum, 43
1496
Ableitungsrelationen, 9
1497
abz
ahlbar, 4
1498
Akzeptanz
1499
durch Endzust
ande, 55
1500
durch leeren Keller, 55
1501
akzeptierte Sprache
eines DEAs, 15
1502
Herleitung, 9
Automat
endlich
1503
Infix, 5
nichtdeterministisch (NEA), 18 1504 Isomorphie

nichtdeterministisch mit -Uberg


a1505
ngen, von DEAs, 32
23
1506
Item, 66
Keller1507
Automat, 67
deterministisch, 60
1508
g
ultig, 67
nichtdeterministisch, 54
1509
initial, 66
Automaten
1510
LR(k)-Item, 72
endlich
1511
g
ultig, 72
deterministisch (DEA), 14
1512
vollstandig, 66
Entwurfsfassung vom 27. September 2016

85

INDEX

1534

Lauf

1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531

Suffix, 5

1577

table filling algorithm, 33


Teilwort, 5
TM, 78
Sprache, 80
Turing Berechenbarkeit, 81
Turingmaschine, 78
`, 78
deterministische, 78
Einband, 78
Konfiguration, 78

1578

Vereinigung, 25, 27

1568
1569
1570
1571
1572
1573
1574
1575
1576

1583

Wort, 5
inverses, 6
Konkatenation, 7
leeres, 5
Wortproblem, 51

1584

Zustande, 79

1579
1580
1581
1582

DR
AF

1532

1567

1533

Kellerautomaten
deterministisch, 60
Sprache, 60
nichtdeterministisch, 54
Kettenregel, 48
kfG, 42
-Freiheit, 44
eindeutig, 44
mehrdeutig, 44
reduziert, 47
kfS
Konkatenation, 53
Vereinigung, 52
Kleeneabschluss, 53
Kleeneabschlu, 7
Komplement, 7, 27
Konfiguration, 78
eines NKA, 55
Konfigurationsrelation
eines NKA, 55
Konkatenation, 5, 28

1513

1535
1536

1537
1538
1539
1540

1541

1542
1543
1544

1545
1546
1547

1548
1549

1550

1551

1552

1553

1554

1555
1556
1557
1558
1559

1560
1561
1562
1563
1564
1565
1566

NEA, 19
eines DEAs, 15
eines NEAs, 19
leeres Wort, 5
Linksableitung, 44
LR(k)-Item
Automat, 73

Markierungsalgorithmus, 45
Menge
abz
ahlbar, 4
NEA, 18
NKA, 54
Nutzlose Variable, 46

Palindrom, 6
parse tree, 43
Pr
afix, 5
Pr
afixeigenschaft, 61
Pumping Lemma
f
ur kontextfreie Sprachen, 53
f
ur regul
are Sprachen, 39
Rechtsableitung, 44
regul
arer Ausdruck

Aquivalenz,
12
Semantik, 12
Syntax, 12

Schrittweises Verhalten von T , 78


Sprache
NEA, 19
formale, 5
von DEA akzeptierte, 17
Sprache einer TM, 80
Startzustand, 78
Entwurfsfassung vom 27. September 2016

86

Das könnte Ihnen auch gefallen