Spracherkennung bei Klammersprachen

Klammerausdrücke

Allen Klammersprachen ist gemeinsam, dass es zu jeder öffnenden Klammer eine korrespondierende schließende Klammer geben muss. Wir betrachten im Folgenden nur noch diese zentrale Eigenschaft von Klammersprachen.

Wir erfassen diese Eigenschaft mit ganz einfachen Klammerausdrücken, die wie folgt aufgebaut sind:

(), (()), ((())), ... .

Die Sprache LKlammer soll alle solche Klammerausdrücke erfassen, bei denen nach einer Folge öffnender Klammern genau so viele schließende Klammern folgen.

Nicht zur Sprache LKlammer gehören z.B. die Klammerausdrücke (() und (()))). Ebenfalls nicht zu dieser sehr einfachen Sprache gehört der Klammerausdruck ()().

In Abschnitt Exkurs - Grenzen von endlichen Automaten wurde gezeigt, dass die so definierte Sprache der Klammerausdrücke nicht mit einem endlichen Automaten erkannt werden kann.

Ein Verarbeitungsmodell zur Erkennung von Klammerausdrücken

Das Verarbeitungsmodell endlicher Automat muss erweitert werden, um in der Lage zu sein, Klammerausdrücke zu erkennen. Die folgende Abbildung zeigt - in wesentlichen Zügen - ein solches erweitertes Verarbeitungsmodell.

Kellerautomat - Idee

Aufgabe 1

Wie funktioniert das erweiterte Verarbeitungsmodell? Welche Funktion hat der integrierte Stapel (man nennt ihn auch Keller)? Woran erkennt die Verarbeitungseinheit, ob ein Klammerausdruck korrekt ist?

X

Fehler melden

X

Suche