Automaten, Formale Sprachen und Berechenbarkeit I
Automaten, Formale Sprachen und Berechenbarkeit I
Automaten, Formale Sprachen und Berechenbarkeit I
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
50 KAPITEL 2. REGULÄRE SPRACHEN<br />
Bemerkungen: <strong>Automaten</strong> <strong>und</strong> rechtslineare Grammatiken lassen sich im wesentlichen 1 zu<br />
1 ineinander übersetzen. Das gleiche selbstverständlich auch für linkslineare Grammatiken.<br />
Redaktioneller Hinweis: Hier könnte man (irgendwann einmal) noch Abschnitte für erkennbare Mengen,<br />
lokale Mengen <strong>und</strong> Gleichungssysteme zur Charakterisierung regulärer <strong>Sprachen</strong> einführen.<br />
5.3 Zusammenfassung<br />
Unsere Tabelle aus Abschnitt 2 können wir nun wie folgt ergänzen:<br />
lineare<br />
<strong>Sprachen</strong><br />
a n b n<br />
Palindrome<br />
lineare<br />
Grammatiken<br />
reguläre<br />
<strong>Sprachen</strong><br />
a ∗ b ∗ c ∗<br />
✎<br />
Typ 3 Grammatiken:<br />
- linkslinear<br />
- rechtslinear<br />
✍<br />
✞<br />
Zweiwegautomat<br />
✝<br />
⇕<br />
☞✎<br />
Endliche <strong>Automaten</strong>:<br />
⇔ - nicht-determ. <strong>Automaten</strong><br />
- determ. & vollst. <strong>Automaten</strong><br />
✌✍<br />
☎✞<br />
Index von R L endlich<br />
✆✝<br />
⇕<br />
☞<br />
✗<br />
- reguläre Ausdrücke<br />
- erkennbare Mengen<br />
⇔<br />
- lokale Mengen<br />
✌- ...<br />
✖<br />
☎<br />
✆<br />
✔<br />
✕<br />
6 Erweiterungen endlicher <strong>Automaten</strong><br />
In Abschnitt 1 haben wir endliche <strong>Automaten</strong> kennengelernt. Die dort vorgestellte Version geht<br />
im wesentlichen auf Rabin <strong>und</strong> Scott zurück. Sie werden daher auch Rabin-Scott-<strong>Automaten</strong><br />
genannt.<br />
Rabin-Scott-<strong>Automaten</strong> sind ein Konzept <strong>und</strong> keine mathematische Definition.<br />
Es gibt aber noch viele weitere Konzepte für <strong>Automaten</strong>. Wir betrachten hier als Beispiel zwei<br />
verschiedene Versionen von endlichen <strong>Automaten</strong> mit Ausgabe: Mealy- <strong>und</strong> Moore-<strong>Automaten</strong>.<br />
Hier betrachten wir nur die deterministischen <strong>und</strong> vollständigen Versionen dieser <strong>Automaten</strong>.<br />
Die Definition nicht-deterministischer <strong>Automaten</strong> mit Ausgabe würde hier zu weit führen.<br />
Es gibt noch viele weiter Konzepte von <strong>Automaten</strong>. Beispielsweise kann man mit Büchi-<strong>Automaten</strong> unendlich<br />
lange Wörter akzeptieren. Dies spielen bei der Verifikation interaktiver bzw. reaktiver Systeme<br />
eine wichtige Rolle. Auch sog. State-Charts stellen eine Variante von <strong>Automaten</strong> dar, die man zur Modellierung<br />
reaktiver Systeme nutzt (vgl. Zustandsdiagramme in UML).<br />
Büchi-<strong>Automaten</strong> <strong>und</strong> State-Charts sind jedoch nicht Gegenstand dieser Vorlesung, sondern Gegenstand<br />
von Spezialvorlesungen.<br />
6.1 <strong>Automaten</strong> mit Ausgabe<br />
Bei <strong>Automaten</strong> mit Ausgabe geht es nicht darum eine Sprache zu definieren (oder ein Wort einer<br />
Sprache zu akzeptieren). Vielmehr wird ein Eingabewort gelesen <strong>und</strong> daraus eine Ausgabewort<br />
erzeugt. Die <strong>Automaten</strong> mit Ausgabe berechnen also Funktionen.<br />
Beispiel 2.13<br />
Wir betrachten als Beispiel zwei <strong>Automaten</strong>, die das bitweises Komplement eines Bit-String<br />
ausgeben. Diese <strong>Automaten</strong> sind in Abb. 2.20 dargestellt.<br />
Welche der Varianten besser, schöner oder eleganter ist, ist Geschmackssache <strong>und</strong> hängt auch<br />
davon ab, zu welchem Zweck der Automat benutzt wird.