Deterministischer Kellerautomat
Kellerautomaten erweitern den Deterministischer Endlicher Automat (DEA) um einen Kellerspeicher (Stapel). Dienen zur Erkennung, ob eine Zeichenfolge (ein “Wort”) zu einer Sprache (z.B. Programmiersprache) gehört oder nicht.
Kellerspeicher
- Stapel / Stack
- theoretisch unendlich groß
- besitzt “Kellerboden”: # (unterstes Kellerelement, das nicht entfernt wird)
- kann nur mit Elementen des Kelleralphabets beschrieben werden
- beim Einlesen, des Eingabezeichens wird zusätzlich das jeweils oberste Zeichen des Kellerspeichers gelesen (und dabei vom Stapel entfernt)
- der Übergang zwischen Zuständen ab
- aktuellen Eingabezeichen
- jeweils obersten Zeichen des Kellerspeichers
Formale Definition
Menge der Zustände: Startzustand Eingabealphabet Kelleralphabet Zustandsübergangsfunktion
| Definition | Beispiel |
|---|---|
| endliche (nicht leere) Menge von Zuständen | |
| Eingabealphabet: endliche (nicht leere) Menge | |
| Kelleralphabet: endliche (nicht leere) Menge | |
| **Zustandsübergangsfunktion ** | |
| genau ein Startzustand | |
| mindestens einen Endzustand (“Finalzustand”) | |
| Kellerboden (Anfangssymbol im Keller, Keller ist leer) |
Ein Wort gehört nicht zur Sprache, wenn:
- nach vollständiger Abarbeitung des Eigabewortes der Keller nicht leer ist
- ein Übergang in die konkrete Kombination aus Eingabe- und Kellerzeichen nicht existiert
Tipp
Beispiele: Klammererkenner, Palindromerkenner