Theory: LBA |
Kontextsensitive Sprachen |
Kontextsensitive Sprachen vom Sprachtyp 1 der Chomsky-Hierarchie bestehen aus überlappenden Abhängigkeiten zwischen den einzelnen Satzteilen. Es genügt daher kein PDA, um diese Strukturen zu erkennen, da die Abarbeitungsfolge nicht symmetrisch angeordnet ist (d.h. es besteht keine zentrale Einbettung). Sie ist beliebig und verlangt daher nach einem Automaten mit einem beliebigen Speicherzugriff.
Definition einer kontextsensitiven Grammatik:
Eine Kette von Terminalen
oder Nichtterminalen darf durch eine andere solche Kette ersetzt werden,
sofern keine verkürzenden
Regeln vorkommen.
Beispiel einer kontextsensitiven Grammatik (aus [Lin97 ] , p.302):
S -> abc
S -> aAbc
Ab-> bA
Ac-> Bbcc
bB-> Bb
aB-> aa
aB-> aaA
Die Grammatik erzeugt eine kontextsensitive Sprache der Form L = {an bn cn; n >=1}
Beispiel der Abarbeitung für a3 b3 c3 :
S -> aAbc -> abAc -> abBbcc -> aBbbcc -> aaAbbcc -> aabAbcc -> aabbAcc -> aabbBbccc -> aabBbbccc -> aaBbbbccc -> aaabbbccc.
A und B werden dabei als
"Boten" eingesetzt. Das A wandert zum ersten c, wodurch ein b und c kreiert
wird. Das B wird dann nach links zum letzten a geschickt, worauf ein weiteres
a entsteht. An diesem Beispiel sieht man auch die asymmetrische Abarbeitungsfolge.