Title: Formale%20Sprachen%20Teil%202
1Formale SprachenTeil 2
2Theorie formaler Sprachen
S ? aAS S ? bBSS ? cAa ? aA Ab ? bA Ac ?
caBa ? aBBb ? bBBc ? cB
S ? (T)T ? ? T ? (T)
- Komplexität von Grammatiken
- Automatenmodelle
- Zusammenhänge zwischen Grammatiken und Automaten
A ? BB ? B ? (CC ? xDD ? )B
3Beispiel Klammersprachen
Korrekt geklammerte Rechenausdrücke (56 34)
17((34 17) (89 11))(((45 6) (67 / 5))
(6 5)) ...
XML-Dokument lt?xml version"1.0"?gtlt!-- Created
with JFLAP 4.0b13. --gtltstructuregt lttypegtgrammarlt
/typegt lt!--The list of productions.--gt ltproducti
ongt ltleftgtSlt/leftgt ltrightgtalt/rightgt lt/product
iongt ltproductiongt ltleftgtSlt/leftgt ltrightgtAlt/ri
ghtgt lt/productiongt ltproductiongt ltleftgtAlt/leftgt
ltrightgtalt/rightgt lt/productiongtlt/structuregt
HTML-Dokument lthtmlgt ltheadgt ... lt/headgt
ltbodygt lth1gtWeiterbildungskurse
Informatiklt/h1gt ltpgtDer Weiterbildungslehrgang
Inf....lt/pgt ltpgtDer Lehrgang besteht ...lt/pgt
ltpgtDer Lehrgang schliesst ...lt/pgt
lt/bodygtlt/htmlgt
4Zielsetzung und Vorgehensweise
Ziel ist es, die Beschreibung von Klammersprachen
mit Hilfe von Grammatiken und die Erkennung von
Klammersprachen mit Hilfe von Automaten genauer
zu untersuchen. Diese Untersuchungen führen
direkt zur Theorie über formale Sprachen und
Automaten. Um den Arbeits- und Schreibaufwand
etwas zu verringern, werden die zu betrachtenden
Sprachen zunächst strukturgetreu vereinfacht.
5Teil 1
Reguläre Sprachen
6Vereinfachtes HTML
Informelle Beschreibung Ein vereinfachtes
HTML-Dokument besteht aus einem Kopf mit
Titelangabe und einem Rumpf mit Abschnitten. Es
sind keine Umlaute erlaubt. Es sollen auch keine
Tabellen, Links, Bilder etc. integriert werden.
Der unten abgebildete HTML-Quelltext ist in
diesem Sinne ein vereinfachtes HTML-Dokument.
lthtmlgtltheadgtlttitlegtWeiterbildungskurs
Informatiklt/titlegt lt/headgtltbodygtltpgtDer
Weiterbildungslehrgang Informatik in
Rheinland-Pfalz ist ein Ersatzstudium der
Informatik für Lehrerinnen und Lehrer, die
bereits eine Lehrbefaehigung in einem
naturwissenschaftlichen Fach haben.lt/pgtltpgtDer
Lehrgang besteht aus sechs Wochenkursen, in denen
jeweils typische Themen der Informatik bearbeitet
werden.lt/pgtltpgtDer Lehrgang schliesst dann mit
einer Pruefung zum Erwerb der Unterrichtserlaubnis
fuer das Grundfach Informatik ab.lt/pgtlt/bodygtlt/h
tmlgt
7Strukturanalyse
Klammerstruktur Hier werden verschiedene Sorten
von Klammern benutzt. Die verschiedenen
Klammersorten können geschachtelt werden, aber
nur in einer bestimmten Form. Der Rumpf-Teil hat
z. B. die Struktur ltbodygtltpgt...lt/pgtltpgt...lt/pgt...ltp
gt...lt/pgtlt/bodygt. Wir abstrahieren im Folgenden
von der Darstellung der Klammern und betrachten
Klammerausdrücke der Gestalt (x)(x)...(x).
ltbodygtltpgtDer Weiterbildungslehrgang ... in einem
naturwissenschaftlichen Fach haben.lt/pgtltpgtDer
Lehrgang besteht aus ... Themen der Informatik
bearbeitet werden.lt/pgtltpgtDer Lehrgang schliesst
... fuer das Grundfach Informatik ab.lt/pgtlt/bodygt
Klammersprache K3 Das Alphabet von K3 ist die
Zeichenmenge , , (, ), x . Zu K3 gehören
alle Wörter über dem Alphabet , , (, ), x ,
die mit beginnen, dann eine beliebige Anzahl
(evtl. auch 0) von Ausdrücken der Gestalt (x)
enthalten und mit enden. Bsp. , (x),
(x)(x), (x)(x)(x), ...
8Aufgabe
Entwickeln Sie eine (mehrere) Grammatik(en) zur
Beschreibung der Klammersprache K3. Entwickeln
Sie auch einen (mehrere) endliche Automaten zur
Erkennung der Klammersprache K3.
9Beschreibung und Erkennung von K3
Klammersprache K3 Das Alphabet von K3 ist die
Zeichenmenge , , (, ), x . Zu K3 gehören
alle Wörter über dem Alphabet , , (, ), x ,
die mit beginnen, dann eine beliebige Anzahl
(evtl. auch 0) von Ausdrücken der Gestalt (x)
enthalten und mit enden. Bsp. , (x),
(x)(x), (x)(x)(x), ...
Grammatik G1 für K3 A ? A ? BB ? CB ?
CBC ? (x)
Endlicher Automat für K3
q0
q1
q2
K3GR1.jff
(
)
Grammatik G2 für K3 A ? BB ? B ? (CC ? xDD
? )B
x
q3
q4
K3GR2.jff
10Erkennung von K3
BeobachtungEs fällt auf, dass die Grammatik G2
genau das Verhalten des endlichen Automaten A mit
Hilfe von Produktionen nachbildet.
Grammatik G1 für K3 A ? A ? BB ? CB ?
CBC ? (x)
Endlicher Automat für K3
B
q0
q1
q2
K3GR1.jff
A
(
)
Grammatik G2 für K3 A ? BB ? B ? (CC ? xDD
? )B
x
q3
q4
C
D
K3GR2.jff
11Aufgabe
Öffnen Sie die Datei K3GR2.jff. Lassen Sie JFlap
zu dieser Grammatik automatisch einen endlichen
Automaten erzeugen ltConvertgtltConvert
Right-Linear Grammar to FAgtltShow Allgt.
Gehen Sie auch umgekehrt vor und lassen Sie sich
von JFlap zum Automaten K3DA1.jff die
entsprechende Grammatik erzeugen.
12Aufgabe
Öffnen Sie die Datei K3GR1.jff. Lassen Sie JFlap
zu dieser Grammatik automatisch einen endlichen
Automaten erzeugen ltConvertgtltConvert
Right-Linear Grammar to FAgtltShow Allgt. Warum
funktioniert das nicht?
13Aufgabe
Wir betrachten die Sprache der Binärzahlen.
Entwickeln Sie eine Grammatik zu dieser Sprache,
die das Verhalten des gezeigten endlichen
Automaten mit Hilfe von Produktionen nachbildet.
Testen Sie Ihren Lösungsvorschlag mit Hilfe von
JFlap.
10
1
q0
q1
0
q2
14Aufgabe
Wir betrachten die Sprache der Binärzahlen. Versuc
hen Sie jetzt, umgekehrt zu einer Grammatik für
diese Sprache einen entsprechenden endlichen
Automaten zu entwickeln. Testen Sie Ihren
Lösungsvorschlag mit Hilfe von JFlap. Was fällt
hier auf?
A ? 0A ? 1A ? 1BB ? 0BB ? 1BB ? 0B ? 1
15Rechtlineare Grammatik
Eine Produktion heißt rechtslinear genau dann,
wenn auf der linken Seite ein Nichtterminalsymbol
steht und die rechte Seite folgende Gestalt hat
- ein Terminalsymbol gefolgt von einem
Nichtterminalsymbolen oder- ein Terminalsymbol.
alternativ- ein Terminalsymbol gefolgt von
einem Nichtterminalsymbolen oder- das leere
Wort. Eine Grammatik heißt rechtslinear / regulär
genau dann, wenn alle Produktionen der Grammatik
rechtslinear sind.
Beispiele für rechtslineare Produktionen A ? 0 A
? 1BB ? 0 B ? 1B ? 0B B ? 1B
Beispiele für rechtslineare Produktionen A ?
0C C ? ? A ? 1BB ? 0D B ? 1D D ? ? B ? 0B B ?
1B
Beispiele für nicht-rechtslineare Produktionen A
? 0B1 A ? A1
16Äquivalenzsatz
SatzZu jedem endlichen Automaten gibt es eine
rechtslineare Grammatik, mit der die Sprache des
Automaten erzeugt werden kann.
Entsprechende Grammatik A ? 1B A ? 0CB ? 0B B ?
1B B ? ?C ? 0D C ? 1D C ? ? D ? 0D D ? 1D
Endlicher Automat
10
1
q0
q1
B
A
10
0
Idee Zu jedem Zustandsübergang wird eine
entsprechende Produktion gebildet. Zu jedem
Endzustand wird eine entsprechende Produktion mit
dem leeren Wort als rechter Seite hinzugefügt.
10
q2
q3
C
D
17Schwierigkeit bei der Umkehrung
Bei der Umwandlung einer rechtslinearen Grammatik
in einen endlichen Automaten kann ein sog.
nichtdeterministischer Automat entstehen. Von
einem Zustand aus können bei gleicher Eingabe
Übergänge in verschiedene Zustände erfolgen.
Nichtdeterministischer Endlicher
Automat
Rechtslineare Grammatik A ? 1B A ? 0C A ? 1C C
? ? B ? 0B B ? 1BB ? 0D B ? 1D D ? ?
10
A
10
1
q0
q2
q3
10
B
D
Nicht-determinismus
q1
C
18Äquivalenzsatz
SatzZu jeder rechtslinearen Grammatik gibt es
einen nichtdeterministischen endlichen Automaten,
der die von der Grammatik erzeugte Sprache
erkennt.
Nichtdeterministischer Endlicher
Automat
Rechtslineare Grammatik A ? 1B A ? 0C A ? 1C C
? ? B ? 0B B ? 1BB ? 0D B ? 1D D ? ?
10
A
10
1
q0
q2
q3
Idee Man geht wie oben beschrieben vor.
10
B
D
Nicht-determinismus
q1
C
19Aufgabe
Öffnen Sie die Datei BinZahlNA1.jff. Dieser
nichtdeterministische Automat erkennt die Sprache
der Binärzahlen. Lassen Sie diesen Automaten
verschiedene Wörter verarbeiten (z. B. 1001).
Machen Sie sich hieran die Arbeitsweise eines
nichtdeterministischen Automaten klar.
20Aufgabe
Öffnen Sie die Datei BinZahlNA1.jff. Dieser
nichtdeterministische Automat erkennt die Sprache
der Binärzahlen. Lassen Sie JFlap diesen
Automaten in einen deterministischen Automaten
umwandeln ltConvert to DFAgt.
21Äquivalenzsatz
SatzZu jedem nichtdeterministischen endlichen
Automaten gibt es einen deterministischen
endlichen Automaten, der dieselbe Sprache
erkennt.
Idee Jede Menge von Zuständen des NEA ergibt
einen Zustand des DEA. Nicht benötigte Zustände
des DEA werden weggelassen.
22Äquivalenzsatz
SatzZu jedem nichtdeterministischen endlichen
Automaten gibt es einen deterministischen
endlichen Automaten, der dieselbe Sprache
erkennt.
- Bemerkung
- Da jeder deterministische Automat auch ein
nichtdeterministischer Automat ist, gilt
trivialerweise auch die Umkehrung Zu jedem
deterministischen Automaten gibt es einen
nichtdeterministischen Automaten, der dieselbe
Sprache erkennt. - Folgerung
- Deterministische und nichtdeterministische
Automaten sind gleich mächtige Sprachverarbeitungs
modelle / erkennen dieselben Sprachen.
23Aufgabe
Öffnen Sie die Datei BinZahlDA2.jff. Dieser
deterministische Automat erkennt die Sprache der
Binärzahlen. Lassen Sie JFlap diesen Automaten in
einen regulären Ausdruck umwandeln ltConvert FA
to REgt. Exportieren Sie anschließend diesen
regulären Ausdruck und lassen Sie ihn wieder in
einen endlichen Automaten umwandeln. Was zeigen
diese Experimente?
24Äquivalenzsatz
Satz (Kleene)Jede durch einen endlichen
Automaten erkennbare Sprache kann durch einen
regulären Ausdruck beschrieben werden.Jede durch
einen regulären Ausdruck beschreibbare Sprache
kann durch einen endlichen Automaten erkannt
werden.
25Reguläre Sprachen
Eine Sprache heißt regulär genau dann, wenn sie
durch einen regulären Ausdruck dargestellt werden
kann.
- Bemerkung
- Eine Sprache ist regulär genau dann, wenn sie
- - durch einen regulären Ausdruck dargestellt
werden kann / - - von einem deterministischen endlichen Automaten
erkannt werden kann / - - von einem nichtdeterministischen endl.
Automaten erkannt werden kann / - - von einer rechtslinearen Grammatik erzeugt
werden kann. - Die genannten Sprachbeschreibungs- bzw.
Sprachverarbeitungskonzepte sind demnach alle
gleich mächtig.
26 27Teil 2
Kontextfreie Sprachen
28Rechenausdrücke
Rechenausdrücke können Klammern enthalten, mit
denen die Reihenfolge von Berechnungen genau
festgelegt wird.
Beispiele für korrekt geklammerte
Rechenausdrücke ((56 34) 17)((34 17)
(89 11))... Beispiele für inkorrekt
geklammerte Rechenausdrücke )13 12) 4((25
16) 7...
29Vereinfachte Rechenausdrücke
Informelle Beschreibung Wir betrachten nur
Rechenterme, die vollständig geklammert sind.
Jede Rechenoperation muss umklammert werden wie
z. B. bei (123). Eine Rechenoperation bezieht
sich auf Zahlen oder Rechenterme wie z. B. bei
((13 7) 4). Rechenterme können beliebig
komplex verschachtelt werden wie z. B. bei
(((45 6) (67 / 5)) (6 5)).
Klammerstruktur Zu jeder öffnenden Klammer muss
es eine passend folgende schließende Klammer
geben. Lässt man die eigentlichen Rechnungen weg,
so ergeben sich Klammerausdrücke der Gestalt
((()())()).
Klammersprache Das Alphabet der Sprache ist die
Zeichenmenge (, ) . Zur Sprache gehören alle
Wörter über dem Alphabet (, ) , die zu jeder
öffnenden Klammer die passende schließende
Klammer haben. Bsp. (), (()), (()()), ...,
((())()(()(()()))), ...
30Aufgabe
Wir vereinfachen die Klammersprache weiter (s.
u.). Versuchen Sie, eine Grammatik zur
Beschreibung von K2 sowie einen endlichen
Automaten zur Erkennung von K2 zu entwickeln.
Klammersprache K2 Das Alphabet von K2 ist die
Zeichenmenge (, ) . Zu K2 gehören alle Wörter
über dem Alphabet (, ) , die nach einer
beliebigen Anzahl öffnender Klammern genau
dieselbe Anzahl schließender Klammern enthält.
Bsp. (), (()), ((())), (((()))), ... Bem.
Statt ( bzw. ) benutzt man häufig die Zeichen a
bzw. b. Bsp. Statt ((())) schreibt man aaabbb.
31Beschreibung von Klammerausdrücken
Klammersprache K2 Das Alphabet von K2 ist die
Zeichenmenge (, ) . Zu K2 gehören alle Wörter
über dem Alphabet (, ) , die nach einer
beliebigen Anzahl öffnender Klammern genau
dieselbe Anzahl schließender Klammern enthält.
Bsp. (), (()), ((())), (((()))), ...
Eine Grammatik für K2 lässt sich leicht angeben
Grammatik S ? (A) A ? ? A ? (A)
Schwieriger ist es dagegen, einen endlichen
Automaten zur Erkennung von K2 anzugeben.
32Erkennung von Klammerausdrücken
Problem Gesucht ist ein endlicher Automat, der
die Sprache K2 der Klammerausdrücke erkennt.
ok
(((())))
EA
Fehler
((())
Schwierigkeit Der endliche Automat (EA) muss
sich merken, wie viele Klammern geöffnet sind.
Zum Merken hat ein endlicher Automat nur Zustände
zur Verfügung. Mit endlich vielen Zuständen kann
man sich aber nicht beliebig viele geöffnete
Klammern merken.
33Die Sprache anbnn aus IN
Satz Es gibt keinen endlichen Automaten, der die
Klammersprache L anbn n ? 1 akzeptiert.
Wir betrachten eine Sprache, die die
Klammer-auf-Klammer-zu-Struktur abstrahierend
beschreibt. Diese Sprache besteht aus den Wörtern
über dem Alphabet a, b, bei denen auf eine
bestimmte Anzahl von as (Klammer auf) genau
dieselbe Anzahl von bs (Klammer zu)
folgt. Also L ab, aabb, aaabbb, aaaabbbb,
... Im Folgenden soll nachgewiesen werden, dass
kein noch so komplizierter oder spitzfindig
ausgedachter Automat in der Lage ist, die
Klammersprache L zu akzeptieren. Wir benutzen
hierzu wie in der Informatik üblich ein
mathematisches Beweisverfahren, also eine exakte,
logisch zweifelsfreie Argumentationskette.
34Beweis
Annahme Es gibt einen endlichen Automaten A, der
L akzeptiert. A hat endliche viele Zustände. m
bezeichne die Anzahl dieser Zustände. (Zur
Illustration der Beweisidee gehen wir hier von m
15 aus.) Wir betrachten jetzt ein Wort w
akbk mit k gt m. (Zur Illustration der Beweisidee
gehen wir hier von k 16 aus. D. h., w a16b16
besteht aus 16 as gefolgt von 16 bs.) Das Wort
w hat dann einen Anfangsteil, der mehr as
enthält als A Zustände hat. Bei der Verarbeitung
des a-Anfangsteils von w muss zwangsläufig
mindestens ein Zustand von A mindestens zweimal
durchlaufen werden. (Zur Illustration der
Beweisidee gehen wir hier davon aus, dass der
Zustand, der mit dem dritten a erreicht wird,
auch wieder mit dem siebten a erreicht wird.).
Somit ist eine Schleife entstanden, die erst mit
Beginn des b-Endteils wieder verlassen wird.
35Beweis
Die folgende Grafik soll die Situation
verdeutlichen- A hat m Zustände (hier m
15).- A akzeptiert w akbk mit k gt m (hier w
a16b16).- Bei d. Verarbeitung des a-Anfangsteils
von w wird ein Zustand mindestens zweimal
durchlaufen werden (hier wird q3 insgesamt 4 mal
durchlaufen).
Weitere spezielle Eigenschaften von A, die in der
Grafik zu erkennen sind, sind für den Beweisgang
nicht von Bedeutung.
Grafik entnommen aus http//hsg.region-kaisersla
utern.de/faecher/inf/material/automaten/anbn/ind
ex.php
36Beweis
Der a-Anfangsteil lässt sich zerlegen in die
Teile vor der Schleife, in der Schleife,
nach der Schleife. Es gilt w akbk
ap(aq)iarbk mit pqirk (hier w a16b16
a3a4a4a4a1b16). Die Zahl i beschreibt die Anzahl
der Schleifendurchläufe beim gegebenen w.
(In der Grafik erkennt man direkt, dass A auch
w a4b16 oderw a8b16 akzeptiert.)
Grafik entnommen aus http//hsg.region-kaisersla
utern.de/faecher/inf/material/automaten/anbn/ind
ex.php
37Beweis
Wir betrachten ein w ap(aq)jarbk mit einem j,
das von i verschieden ist z. B. j i1. Das
neue Wort w hat dann mehr as als bs. Jetzt
gilt- w wird von A akzeptiert (da w genau wie
w den AZ in einen EZ überführt).- w gehört
nicht zur Sprache L (da w mehr as als bs
enthält). A akzeptiert also ein Wort, das nicht
zur Sprache L anbn n ? 1 gehört. Das ist
ein Widerspruch zur Annahme, dass A die Sprache L
akzeptiert. Die Annahme muss daher falsch sein.
Die Aussage des Satzes muss folglich wahr sein.
38Folgerungen
Es gibt Sprachen (wie z. B. die gezeigte
Klammersprache), die - nicht von einem endlichen
Automaten erkannt werden können, - nicht mit
einer regulären Grammatik beschrieben werden
können, - nicht mit einem regulären Ausdruck
beschrieben werden können. Dieses Ergebnis zeigt
insbesondere eine prinzipielle Grenze von
endlichen Automaten auf Sie sind nicht in der
Lage, komplexere Sprachen wie z. B. eine
Klammersprache zu erkennen.
39Zielsetzung
Um auch Klammersprachen erkennen zu können, muss
das bisher betrachtete Automatenkonzept erweitert
werden. Ziel der folgenden Betrachtungen ist es,
ein erweitertes Automatenmodell und seine
Spracherkennungsmöglichkeiten zu erkunden.
40Aufgabe
Starten Sie das Programm Automaton Simulator
und öffnen Sie die Datei Klammersprache1 im
Verzeichnis MaterialAutomatonSimulator. Lassen
Sie den gezeigten erweiterten Automaten
verschiedene abstrakte Klammerausdrücke wie
aabb oder aaab oder aabbbb verarbeiten.
Versuchen Sie herauszufinden, wie
Spracherkennung mit diesem erweiterten Automaten
funktioniert.
41Ein Automat mit Zusatzspeicher
öffnen
öffnen
öffnen
aabb
aabb
aabb
aa
a
push a
push a
schliessen
schliessen
aabb
a
pop
pop
Keller
Kellerautomat
Der Automat wird um einen Zusatzspeicher (Keller)
erweitert, mit dem er sich die öffnenden
Klammern merken kann.
42Keller / Stapel
Ein Keller / Stapel ist ein Speicher, der nach
dem LIFO-Prinzip (last in, first out) arbeitet.
push(...)
top
pop
... auf den Stapel legen
liefert das oberste Stapelelement
das oberste Stapelelement entfernen
43Kellerautomat Version 1
Ein Kellerautomat ist ein um einen Kellerspeicher
erweiterter Automat - Der Kellerautomat verfügt
zusätzlich über ein Kelleralphabet, das alle
Zeichen enthält, die im Keller gespeichert werden
können. - Die Zustandsübergänge hängen nicht nur
von den Eingaben, sondern auch vom jeweils
obersten Kellerzeichen ab.- Bei jedem Übergang
wird eine Kelleroperation durchgeführt.
Oberstes Kellerzeichen / Eingabezeichen
Kelleroperation
Beim vorliegenden Kellerautomaten wird ein Wort
genau dann akzeptiert, wenn der Keller nach
Abarbeitung des Wortes leer ist.
44Aufgabe
Starten Sie das Programm JFLAP und öffnen Sie
die Datei Klammersprache1 im Verzeichnis
MaterialJFlap. Lassen Sie den gezeigten
erweiterten Automaten verschiedene abstrakte
Klammerausdrücke wie aabb oder aaab oder aabbbb
verarbeiten. Was ist anders bei diesem
Kellerautomaten?
45Kellerautomat Version 2
Anfangszustand
Aktueller Zustand
aabb
aabb
aabb
q0 öffnen
q0 öffnen
q0 öffnen
a, Z aZ
a, a aa
b, a ?
aaZ
aZ
Oberstes Kellerzeichen
Oberstes Kellerzeichen
Eingabe-zeichen
neue Kellerzeichen
Z
aabb
aabb
q1 schliessen
q2 korrekt
q1 schliessen
b, a ?
?, Z Z
Endzustand
aZ
Leere Eingabe
Z
Z
Kellerstart-zeichen
46Kellerautomat Version 2
Ein Kellerautomat ist ein um einen Kellerspeicher
erweiterter Automat - Der Kellerautomat verfügt
zusätzlich über ein Kelleralphabet, das alle
Zeichen enthält, die im Keller gespeichert werden
können. Hierzu gehört auch das Kellerstartzeichen,
das zu Beginn im Keller gespeichert ist.- Die
Zustandsübergänge hängen nicht nur von den
Eingaben, sondern auch vom jeweils obersten
Kellerzeichen ab.- Bei jedem Übergang wird eine
Kelleroperation durchgeführt. Das oberste
Kellerzeichen wird dabei durch eine (ggf. leere)
Folge neuer Zeichen ersetzt. - Oft erlaubt man
zusätzlich, dass auch spontane Übergänge
stattfinden können (d. h. dass leere Eingaben
verarbeitet werden) und dass Zustandsübergänge
nicht-deterministisch erfolgen können.
47Kellerautomat Version 2
Eingabezeichen (evtl. leer) , oberstes
Kellerzeichen Folge von neuen Kellerzeichen
Beim vorliegenden Kellerautomat wird ein Wort
genau dann akzeptiert, wenn sich der
Kellerautomat nach Abarbeitung des Wortes in
einem Endzustand befindet.
48Aufgaben
Entwickeln Sie einen Kellerautomaten, der
verallgemeinerte Klammerausdrücke der folgenden
Gestalt erkennt. Die Sprache dieser
Klammerausdrücke wird im Folgenden K2genannt.
((x)(x)), (((x)((x)))(x))
Entwickeln Sie einen Kellerautomaten, der
vereinfachte Rechenausdrücke mit Binärzahlen
erkennt. Bsp. ((100 11) 101)((11010 101)
(111 1100))
49Ein Blick auf die Grammatiken
Wir betrachten Klammersprachen im Vergleich
Klammersprache K3 K3 , (x), (x)(x),
(x)(x)(x), ... Alphabet , , (, ), x .
Produktionen A ? A ? BB ? CB ? CBC ? (x)
Klammersprache K2 K2 ((x)(x)),
(((x)((x)))(x))... Alphabet (, ), x .
Produktionen A ? BA ? BAB ? (C)B ? (A)C ? x
Anhand der Grammatiken kann man hier zumindest
auf den ersten Blick nicht unterscheiden,
welche der beiden Sprachen komplexer ist. Die
Situation ändert sich, wenn man zur ersten
Sprache eine einfachere Grammatik angibt.
50Ein Blick auf die Grammatiken
Wir betrachten Klammersprachen im Vergleich
Klammersprache K3 K3 , (x), (x)(x),
(x)(x)(x), ... Alphabet , , (, ), x .
Produktionen A ? BB ? B ? (CC ? xDD ? )B
Klammersprache K2 K2 ((x)(x)),
(((x)((x)))(x))... Alphabet (, ), x .
Produktionen A ? BA ? BAB ? (C)B ? (A)C ? x
Die Grammatik zur Sprache K3 ist rechtslinear,
während die Grammatik zur Sprache K2 eine
komplexere Struktur hat. Auf der rechten Seite
einer Produktion stehen hier komplexere Wörter
aus Terminal- und Nichtterminalsymbolen.
51Kontextfreie Grammatiken
Eine Produktion heißt kontextfrei genau dann,
wenn für jede Regel gilt - Auf der linken Seite
steht ein Nichtterminalsymbol.- Auf der rechten
Seite steht ein beliebiges Wort bestehend aus
Terminal- und Nichtterminalsymbolen. Eine
Grammatik heißt kontextfrei genau dann, wenn alle
Produktionen der Grammatik kontextfrei sind.
Eine Sprache heißt kontextfrei genau dann, wenn
sie mit Hilfe einer kontextfreien Grammatik
beschrieben werden kann.
- Beispiel für eine kontextfreie Grammatik
- A ? BA ? BAB ? (C)B ? (A)C ? x
52Suche nach einfachen Grammatiken
Klammersprache K3 K3 , (x), (x)(x),
(x)(x)(x), ... Alphabet , , (, ), x .
Produktionen A ? A ? BB ? CB ? CBC ? (x)
Klammersprache K3 K3 , (x), (x)(x),
(x)(x)(x), ... Alphabet , , (, ), x .
Produktionen A ? BB ? B ? (CC ? xDD ? )B
Bemerkung Zur Beschreibung einer Sprache lassen
sich oft viele verschiedene Grammatiken angeben.
Die einfachste mögliche Grammatik legt den
Komplexitätsgrad der Sprache fest. Beispiel K3
ist regulär, da es eine reguläre Grammatik zu
dieser Sprache gibt.
53Aufgabe
Geben Sie die Grammatik zur Klammersprache K2 in
JFlap ein. Lassen Sie JFlap dann diese Grammatik
in einen nichtdeterministischen Kellerautomaten
(convert CFG to PDA (LL)) übersetzen. Testen
Sie diesen Kellerautomaten, indem Sie ihn das
Wort ((x)((x))) überprüfen lassen. (fast run).
Aus dem Ablaufprotokoll (trace) lässt sich
erkennen, wie der Kellerautomat arbeitet.
54Äquivalenzsatz
SatzEine Sprache ist kontextfrei genau dann,
wenn sie von einem nichtdeterministischen
Kellerautomaten erkannt wird.
Beweis Studium Beachte Mit deterministischen
Kellerautomaten kann man nur eine echte Teilmenge
der kontextfreien Sprachen erkennen.
55Teil 3
Kontextsensitive und allgemeine Sprachen
56XML
JFlap benutzt wie viele andere Programme auch
die standardisierte Dokumentenbeschreibungssprache
XML zur Darstellung der abzuspeichernden
Strukturen.
lt?xml version"1.0"?gtlt!-- Created with JFLAP
4.0b13. --gtltstructuregt lttypegtgrammarlt/typegt lt!-
-The list of productions.--gt ltproductiongt ltleft
gtSlt/leftgt ltrightgtalt/rightgt lt/productiongt ltprod
uctiongt ltleftgtSlt/leftgt ltrightgtAlt/rightgt lt/pro
ductiongt ltproductiongt ltleftgtAlt/leftgt ltrightgta
lt/rightgt lt/productiongtlt/structuregt
57XML
Die Extensible Markup Language (engl. für
erweiterbare Auszeichnungs-Sprache), abgekürzt
XML, ist ein Standard zur Erstellung maschinen-
und menschenlesbarer Dokumente in Form einer
Baumstruktur, der vom World Wide Web Consortium
(W3C) definiert wird. Siehe http//de.wikipedia.
org/wiki/XML
lt?xml version"1.0"?gtlt!-- Created with JFLAP
4.0b13. --gtltstructuregt lttypegtgrammarlt/typegt lt!-
-The list of productions.--gt ltproductiongt ltleft
gtSlt/leftgt ltrightgtalt/rightgt lt/productiongt ltprod
uctiongt ltleftgtSlt/leftgt ltrightgtAlt/rightgt lt/pro
ductiongt ...lt/structuregt
58XML
XML benutzt Tags zur Strukturierung von
Dokumenten. Im Gegensatz zu HTML können hier
beliebige Tags zur Strukturierung eingeführt
werden. Wie bei HTML muss zu jedem Anfangstag ein
passendes Endtag folgen.
lt?xml version"1.0"?gtlt!-- Created with JFLAP
4.0b13. --gtltstructuregt lttypegtgrammarlt/typegt lt!-
-The list of productions.--gt ltproductiongt ltleft
gtSlt/leftgt ltrightgtalt/rightgt lt/productiongt ltprod
uctiongt ltleftgtSlt/leftgt ltrightgtAlt/rightgt lt/pro
ductiongt ltproductiongt ltleftgtAlt/leftgt ltrightgta
lt/rightgt lt/productiongtlt/structuregt
59Vereinfachtes XML
Informelle Beschreibung Ein vereinfachtes
XML-Dokument besteht aus ineinandergeschachtelten
Elementen. Ein Element besteht aus einem
Anfangstag, einem Bezeichner oder einer
Elementliste und einem passenden Endtag. Ein
Bezeichner besteht aus beliebigen
alphanumerischen Zeichen. Der unten abgebildete
XML-Quelltext ist in diesem Sinne ein
vereinfachtes XML-Dokument.
ltstructuregt lttypegtgrammarlt/typegt ltproductiongt
ltleftgtSlt/leftgt ltrightgtalt/rightgt lt/productiongt
ltproductiongt ltleftgtSlt/leftgt ltrightgtAlt/rightgt
lt/productiongt ltproductiongt ltleftgtAlt/leftgt ltri
ghtgtalt/rightgt lt/productiongtlt/structuregt
60Strukturanalyse
Klammerstruktur Hier werden beliebig
konstruierbare Sorten von Klammern benutzt. Die
verschiedenen Klammersorten können beliebig
geschachtelt werden. Es ist nur darauf zu achten,
dass entsprechende Klammern auch zusammenpassen.
ltstructuregt lttypegtgrammarlt/typegt ltproductiongt
ltleftgtSlt/leftgt ltrightgtalt/rightgt lt/productiongt
ltproductiongt ltleftgtSlt/leftgt ltrightgtAlt/rightgt
lt/productiongt ltproductiongt ltleftgtAlt/leftgt ltri
ghtgtalt/rightgt lt/productiongtlt/structuregt
Im Folgenden betrachten wir den Aspekt, dass
beliebig konstruierbare Klammern
zusammenpassen. Bsp. für wohlgeformte
Klammerausdrückelttypegtgrammarlt/typegtltleftgtSlt/le
ftgtltrightgtalt/rightgt Bsp. für nicht-wohlgeformte
Klammerausdr.ltrightgtgrammarlt/thgirgtlttypegtgramm
arlttypegtltleftgtSlt/rightgt
61Aufgabe
Wir vereinfachen die Klammersprache weiter (s.
u.). Die unten gezeigte Grammatik beschreibt
diese Sprache K1. Testen Sie dies zunächst mit
Hilfe verschiedener Beispiele und
Gegenbeispiele. Schauen Sie sich Ableitungen von
Wörtern, die zu K1 gehören, genauer an und
versuchen Sie zu verstehen, wie die Grammatik die
zu K1 gehörenden Wörter erzeugt.
S ? aAS S ? bBSS ? cAa ? aA Ab ? bA Ac ?
caBa ? aBBb ? bBBc ? cB
Klammersprache K1 Das Alphabet von K1 ist die
Zeichenmenge a, b, c. Zu K1 gehören alle
Wörter über dem Alphabet a, b, c, die mit einem
beliebigen Wort w über dem Alphabet a, b
beginnen, die dann das Trennsymbol c enthalten
und anschließend mit genau demselben Wort w
enden. Bsp. c, aca, abcab, bacba, abbacabba, ...
62Aufgabe
Die Sprache LMyXML soll vereinfachte XML-artige
Ausdrücke beschreiben. - Jedes zu L gehörende
Wort soll aus einem Anfangstag, einem Text und
einem Endtag bestehen.- Anfangs- und Endtag
sollen identisch sein.- Die Tag-Bezeichner sind
beliebige nicht-leere Zeichenketten, die nur aus
den Buchstaben a und b bestehen.- Der Text
zwischen den Anfangs- und End-Tag besteht nur aus
den Buchstaben a, b und c bestehen.
Beispieleltabgtacaaltabgt... Entwickeln Sie
ausgehende von der gezeigten Grammatik für K1
eine Grammatik für LMyXML.
63Eine Grammatik für MyXML
S ? ltaATgtS ? ltbBTgtT ? aATT ? bBTT ? MAa ?
aAAb ? bAAM ? MaBa ? aBBb ? bBBM ? MbM ?
gtNM ? aMM ? bMM ? cMM ? lt
MyXML.jff
64Grammatiken im Vergleich
A ? BA ? BAB ? (x)B ? (A)
S ? aAS S ? bBSS ? cAa ? aA Ab ? bA Ac ?
caBa ? aBBb ? bBBc ? cB
S ? ltaATgtS ? ltbBTgtT ? aATT ? bBTT ? MAa ?
aAAb ? bAAM ? MaBa ? aBBb ? bBBM ? MbM ?
gtNN ? aNN ? bNN ? cNN ? lt
KlammerX.jff
K1.jff
MyXML.jff
Bisher stand auf der linken Seite einer
Produktion immer ein einzelnes Nicht-Terminalsymbo
l. Die jetzt betrachteten Grammatiken enthalten
ganze Wörter mit Terminal- und Nichtterminalsymbol
en auf der linken Seite.
65Allgemeine Produktionen
Eine Produktion u ? v heißt allgemein genau dann,
wenn u und v beliebige Wörter aus Terminal- und
Nichtterminalsymbolen sind. Eine Produktion u ? v
heißt (Wortlängen-)monoton genau dann, wenn u und
v beliebige Wörter aus Terminal- und
Nichtterminalsymbolen sind und wenn v mindestens
so lang wie u ist. Eine Produktion u ? v heißt
kontextsensitiv genau dann, wenn diese Produktion
die Gestalt xAy ? xwy hat, wobei - A ein
Nichtterminalsymbol ist und- x und y beliebige
Wörter bestehend aus Terminal- und
Nichtterminalsymbolen sind. - w ein beliebiges,
nicht-leeres Wort bestehend aus Terminal- und
Nichtterminalsymbolen ist.
Beachte Bei einer kontextsensitiven Produktion
xAy ? xwy darf das Nichtterminalsymbol A nur dann
durch das Wort w ersetzt werden, wenn A im
Kontext x..y steht. Beachte, dass die Wörter x
und y auch das leere Wort sein können.
66Monotone und kontextsensitive Prod.
S ? ltaATgtS ? ltbBTgtT ? aATT ? bBTT ? MAa ?
aAAb ? bAAM ? MaBa ? aBBb ? bBBM ? MbM ?
gtNN ? aNN ? bNN ? cNN ? lt
N ? aN allgemein, monoton, kontextsensitiv,
kontextfrei, rechtslinear S ? bBS allgemein,
monoton, kontextsensitiv, kontextfrei, nicht
rechtslinear Aa ? aA allgemein, monoton, nicht
kontextsensitiv, nicht kontextfrei, nicht
rechtslinear
Beachte Jede rechtslineare Produktion ist
kontextfrei.Jede kontextfreie Produktion ist
kontextsensitiv....
MyXML.jff
67Monotone / kontextsensitive Sprachen
Eine Grammatik heißt allgemein genau dann, wenn
alle Produktionen allgemein sind. Eine Grammatik
heißt (Wortlängen-)monoton genau dann, wenn
entweder alle Produktionen monoton sind, oder
wenn alle Produktionen monoton sind außer S ? ?,
sofern das Startsymbol S nie auf der rechten
Seite einer Produktion vorkommt. Eine Grammatik
heißt kontextsensitiv genau dann, wenn entweder
alle Produktionen kontextsensitiv sind, oder wenn
alle Produktionen kontextsensitiv sind außer S ?
?, sofern das Startsymbol S nie auf der rechten
Seite einer Produktion vorkommt. Eine Sprache
heißt monoton / kontextsensitiv genau dann, wenn
sie von einer monotonen / kontextsensitiven
Grammatik erzeugt wird.
68Monotone und kontextsensitive Prod.
SatzJede kontextsensitive Sprache ist monoton.
Jede monotone Sprache ist auch kontextsensitiv.
D.h. Zu einer monotonen Sprache lässt sich eine
kontextsensitive angeben, die diese Sprache
erzeugt.
Das Beispiel soll verdeutlichen, wie man von
monotonen Produktionen zu kontextsensitiven
Produktionen gelangt.
S ? aAS S ? bBSS ? cAa ? aA Ab ? bA Ac ?
caBa ? aBBb ? bBBc ? cb
S ? NaAS S ? NbBSS ? NcANa ? NaA ANb ? NbA
ANc ? NcNaBNa ? NaBBNb ? NbBBNc ? NcNbNa ? a
Nb ? bNc ? c
ANa ? ADAD ? CDCD ? CNaCNa ? ANa
ANb ? AFAF ? EFEF ? ENbENb ? ANb
ANc ? AHAF ? GHGH ? GNcGNc ? ANc
69MyXML
Die Sprache MyXML ist- allgemein (klar)-
monoton (offensichtlich)- kontextsensitiv (nach
Satz)
Eine Grammatik für MyXML S ? ltaATgtS ? ltbBTgtT ?
aATT ? bBTT ? MAa ? aAAb ? bAAM ? MaBa ?
aBBb ? bBBM ? MbM ? gtNN ? aNN ? bNN ? cNN
? lt
MyXML.jff
70MyXML
Die Sprache MyXML ist nicht kontextfrei. Um dies
nachzuweisen, muss man zeigen, dass es keine
kontextfreie Grammatik gibt, die MyXML erzeugt.
Man zeigt dies, indem man nachweist, dass es
keinen Kellerautomaten gibt, der diese Sprache
akzeptiert. (Beweis Studium)
Eine Grammatik für MyXML S ? ltaATgtS ? ltbBTgtT ?
aATT ? bBTT ? MAa ? aAAb ? bAAM ? MaBa ?
aBBb ? bBBM ? MbM ? gtMM ? aMM ? bMM ? cMM
? lt
MyXML.jff
71Erweiterung des Automatenmodells
ZielsetzungZiel ist es, ein Automatenmodell zu
entwickeln, das auch komplexere Sprachen (wie
kontextsensitive / allgemeine Sprachen) erkennen
kann. VorgehensweiseWir betrachten zunächst
wieder die Sprache K1 / Lwcw der Wörter der
Gestalt wcw, wobei w ein beliebiges Wort über a,
b ist. Zunächst testen wir ein neues
Maschinenmodell und analysieren dann seine
Arbeitsweise.
72Aufgabe
Starten Sie das Programm JFlap und öffnen Sie
die Datei wcwTM im Verzeichnis
MaterialJFlap. Lassen Sie den gezeigten
erweiterten Automaten folgende Wörter
verarbeiten aabcaab, abbacabba, c, aacaab,
aabcaa, ... Wie arbeitet diese Maschine?
73Turingmaschinen
Eine Turingmaschine ist ein Automat, der
zustandsabhängig Zeichen bearbeiten kann, die
sich auf einem (nach links und rechts
unbegrenzten) Band befinden. Die Turingmaschine
verfügt hierzu über einen Schreib-/Lesekopf, der
sich auf dem Band in beide Richtungen bewegen
kann und zustandsabhängig die Bandbeschriftung
verändern kann.
Schreib-/Lesekopf
Aktueller Zustand
Band mit aktueller Beschriftung
Zustandsbasierte Verarbeitungseinheit
74Arbeitsweise der Turingmaschine
- Die Turingmaschine befindet sich zu Beginn in
einem Startzustand.- Die Turingmaschine liest
das Zeichen aus der Zelle, auf dem sich der
Schreib-/Lesekopf befindet, schreibt ein neues
Zeichen in die Zelle und bewegt den
Schreib-/Lesekopf dann nach rechts oder links
bzw. stoppt. - Die Turingmaschine darf für
Zwischenergebnisse zusätzliche Zeichen verwenden,
die nicht in den zu analysierenden Wörtern
vorkommen. - Ein Wort wird genau dann akzeptiert,
wenn sich die Turingmaschine nach Abarbeitung des
Wortes in einem Endzustand befindet.
Gelesenes Zeichen Geschriebenes Zeichen,
Kopfbewegung
75Aufgabe
Entwickeln Sie eine Turingmaschine, die die
Sprache L anbn n ? 1 akzeptiert. Entwerfen
und testen Sie eine Turingmaschine, die die
Sprache L anbncn n ? 0 akzeptiert.
76Aufgabe
Zeigen Sie, dass die Sprache MyXML mit Hilfe
einer Turingmaschine erkannt werden kann. Die
Sprache MyXML kann sogar mit Hilfe einer sog.
linear beschränkten Turingmaschine erkannt
werden. Eine linear beschränkte Turingmaschine
ist eine Turingmaschine, bei der die Eingabe
durch Randmarkierungen und eingeschlossen
wird. Die Turingmaschine darf bei der Bearbeitung
diese Markierungen weder überschreiten noch
überschreiben.
77Äquivalenzsatz
SatzEine Sprache ist allgemein genau dann, wenn
sie von einer deterministischen (oder
nichtdeterministischen) Turingmaschine erkannt
wird.
SatzEine Sprache ist kontextsensitiv genau dann,
wenn sie von einer linear beschränkten
nichtdeterministischen Turingmaschine erkannt
wird.
BemerkungDeterministische und
nichtdeterministische Turingmaschinen sind gleich
mächtig.
78Chomsky-Hierarchie
Klassifikation von Sprachen (nach Noam Chomsky /
1958)
Typ Grammatik äquivalenter Automat 0 allgemein (ni
cht)deterministische Turingmaschine 1 kontextsensi
tiv nichtdet. linear beschr. Turingmaschine 2 kont
extfrei nichtdeterministischer Kellerautomat 3 reg
ulär (nicht)deterministischer endl. Automat
79Teil 4
Exkurs natürliche Sprachen
80Noam Chomsky
Noam Chomsky hat die Darstellung natürlicher
Sprachen formalisiert. Die Neuerung war, die
einzelsprachlichen Ausdrücke mit Hilfe einer
Metasprache rekursiv zu definieren. Die aus der
Metasprache abgeleiteten Klassen von Grammatiken
können in eine Hierarchie eingeteilt werden, die
heute Chomsky-Hierarchie genannt wird. Seine
Arbeit stellt einen wichtigen Meilenstein für die
Linguistik dar. Formale Sprachen und die
Chomsky-Hierarchie spielen auch in der Informatik
eine wichtige Rolle, insbesondere in der
Komplexitätstheorie und im Compilerbau. Zusammen
mit den Arbeiten Alan Turings begründen sie einen
eigenen Bereich in der Mathematik und machen
strukturelle Bereiche und Formalismen natürlicher
Sprachen einer mathematischen Betrachtung
zugänglich, unter anderem mit dem Ergebnis, dass
maschinelle Übersetzungen prinzipiell möglich
sind. Vielen Forschern innerhalb der
Computerlinguistik gelten Chomskys Theorien,
insbesondere die Generative Transformationsgrammat
ik und seine Government and Binding-Ansätze,
allerdings seit ungefähr 1980 zwar als bedeutende
Pionierleistung, jedoch als heute veraltet,
insofern sie sich auf natürliche Sprachen
beziehen - im Gegensatz zu Programmiersprachen
und anderen formalen Sprachen, wo seine
Formalismen weiterhin mit Gewinn verwendet werden
können. (siehe http//www.philosophenlexikon.de/c
homsky.htm)
81Sprache und ihre Verwendung
Natürliche Sprachen sind Zeichensysteme, die u.
a. für Kommunikation genutzt werden.
82Syntax, Semantik, Pragmatik
Aspekte natürlicher Sprachen
Syntax Lehre vom Satzbau Anordnung der Zeichen
Semantik Bedeutungslehre Beziehung zwischen
Zeichen und Bezeichnetem
Pragmatik Lehre von der Verwendung sprachlicher
Konstrukte in Handlungssituationen Beziehung
zwischen Zeichen und Zeichenbenutzer
83Eine einfache Grammatik
ltSgt ltNPgt ltVPgt Ein Satz besteht aus einer
Nominalphrase und einer Verbalphrase. ltNPgt
ltNgt ltAgt ltNgt ltNgt ltPPgt Eine Nominalphrase muss
immer aus einem Nomen bestehen, welchem unter
Umständen ein Artikel vorangestellt ist. Ferner
kann dem Nomen eine oder mehrere
Präpositionalphrasen nachgestellt sein. ltVPgt
ltVgt ltVgt ltNPgt ltVPgt ltPPgt Eine Verbalphrase
besteht aus einem Verb, dem eine Nominal- oder
Präpositionalphrase nachgestellt sein kann. ltPPgt
ltPgt ltNPgt Eine Präpositionalphrase besteht aus
einer Präposition und einer Nominalphrase. ltAgt
der die das dem ein einem ... ltPgt
mit in ... ltNgt Anna Kuh Park
Fernglas ... ltVgt betrachtet ...
(nach U. Schöning Ideen der Informatik.
Oldenbourg 2002)
84Test der Grammatik
ltSgt ltNPgt ltVPgt ltNPgt ltNgt ltAgt ltNgt ltNgt
ltPPgt ltVPgt ltVgt ltVgt ltNPgt ltVPgt ltPPgt ltPPgt
ltPgt ltNPgt ltAgt der die das einem
... ltPgt mit in ... ltNgt Anna Kuh
Fernglas ... ltVgt betrachtet ...
ltSgt ? ltNPgt ltVPgt ? ltNgt ltVPgt ? ltNgt ltVPgt ? Anna
ltVPgt ? Anna ltVPgt ltPPgt ? Anna ltVgt ltNPgt ltPPgt ?
Anna betrachtet ltNPgt ltPPgt ? Anna betrachtet ltAgt
ltNgt ltPPgt ? Anna betrachtet die ltNgt ltPPgt ? Anna
betrachtet die Kuh ltPPgt ? Anna betrachtet die
Kuh ltPgt ltNPgt ? Anna betrachtet die Kuh mit ltNPgt
? Anna betrachtet die Kuh mit ltAgt ltNgt ? Anna
betrachtet die Kuh mit einem ltNgt ? Anna
betrachtet die Kuh mit einem Fernglas
85Automatische Übersetzung
Die Beschreibung, Erkennung und Übersetzung
natürlicher Sprachen ist sehr schwierig. Der
Beschreibungsansatz über Grammatiken hat bisher
nicht zum Erfolg geführt. Heute versucht man,
natürliche Sprachen mit statistischen Methoden
automatisch zu übersetzen.
86Literaturhinweise
F. Gasper, I. Leiß, M. Spengler, H. Stimm
Technische und theoretische Informatik. Bsv
1992. E. Modrow Automaten, Schaltwerke,
Sprachen. Dümmlers Verlag 1988. R. Baumann
Informatik für die Sekundarstufe II, Band 2.
Klett-Verlag 1993. Informatik heute, Band 2.
Schroedel-Verlag 1988. U. Schöning Theoretische
Informatik kurzgefasst. Spektrum Akademischer
Verlag 2001. J. E. Hopcroft / J. D. Ullman
Einführung in die Automatentheorie, Formale
Sprachen und Komplexitätstheorie. Addison-Wesley
1988. S. H. Rodger, T. W. Finley JFLAP. Jones
and Bartlett Publishers 2006. ...