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

DefinitionBeispiel
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

Beispiele: Klammererkenner, Palindromerkenner