Dyck-Sprache

Aus testwiki
Zur Navigation springen Zur Suche springen

Die Dyck-Sprachen sind in der theoretischen Informatik bestimmte kontextfreie formale Sprachen, also Typ-2-Sprachen entsprechend der Chomsky-Hierarchie. Sie sind nach dem Mathematiker Walther von Dyck benannt.

Für jede natürliche Zahl n ist die Dyck-Sprache Dn die Wortmenge der korrekt geklammerten (wohlgeformten) Ausdrücke mit n unterschiedlichen Klammerpaaren. Induktiv lässt sich Dn wie folgt definieren:

  • εDn (Dabei ist ε das leere Wort.)
  • Falls v,wDn, so gilt auch vwDn.
  • Falls wDn, so gilt auch {iw}iDn für alle i{1,2,,n}. (Dabei sind {i die i-te öffnende und }i die i-te schließende Klammer.)

Die Dyck-Sprache D2 kann die zwei Klammerpaare [, ] und (, ) umfassen. Dann gilt beispielsweise:

  • [[()[]]()] D2
  • ([)] D2
  • )) D2

Ein Wort aus einer Dyck-Sprache kann man zu einem leeren Wort reduzieren, indem man schrittweise jedes in der richtigen Reihenfolge auftretende Klammerpaar durch das leere Wort ε ersetzt. Ein Dyck-Wort kann als ein Rutishauser-Klammergebirge dargestellt werden. Dabei wird auf der Abszisse die Position der Klammer im Wort und auf der Ordinate die jeweilige Klammertiefe dargestellt. Dyck-Sprachen sind deterministisch kontextfrei und damit insbesondere kontextfrei. Sie sind jedoch nicht regulär.

Kontextfreie Grammatik der Dyck-Sprache D2:

Sε
SSS
S[S]
S(S)

Im Falle Dn gibt es analog n verschiedene Produktionen der Art S{iS}i für i{1,2,,n}.

Literatur

  • Salomaa, Arto K.: Formale Sprachen. Springer, Berlin Heidelberg New York, 1978