turing aibjck.tmwobei anstelle von aibjck.tm natürlich auch jede andere Turingmaschinen-Datei stehen kann. Nach dem Laden der Turingmaschine und ihrer Ausgabe, die zu Kontrollzwecken erfolgt, erscheint ein kleines Menü, von dem aus Sie mit der Turingmaschine experimentieren können.
Turingmaschine ::=Alle am Dateianfang unmittelbar aufeinanderfolgenden und mit '#' beginnenden Zeilen werden als Kommentarzeilen erkannt.
{ Kommentarzeile }
Menge der Eingabezeichen
Menge der Zustände
Menge der Bandsymbole (ohne\lambda )
Startzustand
Menge der Endzustände
{ Produktionen }
Sowohl Bandsymbole als auch Zustände werden durch einzelne Zeichen
von ASCII #33 ('!') bis ASCII #126 ('~') dargestellt, das Blankzeichen
Das Ganze soll an einem Beispiel veranschaulicht werden. Die Turingmaschine
mit der TuringtafelT = (\{a,b,c\}, \{z_0,\ldots,z_{11}\}, \{a,b,c,X,\lambda\}, f, z_0, \{z_7\})
erkennt die Sprache
f a b c X \lambda z0 (z8, \lambda ,R)(z2, \lambda ,R)(z1, \lambda ,R)z1 (z2, \lambda ,R)(z1, \lambda ,R)z2 (z2,b,R) (z2,c,R) (z3, \lambda ,L)z3 (z4, \lambda ,L)z4 (z4,b,L) (z4,c,L) (z5, \lambda ,R)z5 (z2, \lambda ,R)(z6, \lambda ,R)z6 (z6, \lambda ,R)(z7, \lambda ,L)z7 z8 (z8,a,R) (z9,X,R) (z8,X,R) z9 (z9,b,R) (z9,c,R) (z10, \lambda ,L)z10 (z11, \lambda ,L)z11 (z11,a,L) (z11,b,L) (z11,c,L) (z11,X,L) (z0, \lambda ,R)
Die entsprechende Turingmaschinen-Datei aibjck.tm sieht dann so aus:L = \{a^i b^j c^k \;|\; 0\leq i
Außer L (links) und R (rechts) sind noch die Kopfbewegungen N bzw. O (keine Bewegung) sowie S (stop) zugelassen.
# Diese Turingmaschine erkennt die Sprache # L = {a^i b^j c^k | 0<=i<j<k}. abc 0123456789AB abcX 0 7 0a8 R 0b2 R 0X1 R 1b2 R 1X1 R 2b2bR 2c2cR 2 3 L 3c4 L 4b4bL 4c4cL 4 5 R 5b2 R 5c6 R 6c6 R 6 7 L 8a8aR 8b9XR 8X8XR 9b9bR 9c9cR 9 A L AcB L BaBaL BbBbL BcBcL BXBXL B 0 R
Das Programm ist sehr einfach gehalten und nimmt keine aufwendigen Syntax-Checks vor. Im Falle unkorrekter Turingmaschinen-Dateien wird daher in aller Regel keine Fehlermeldung ausgegeben. Bitte beachten Sie auch, daß Kommentarzeilen nur am Anfang angegeben werden können und unmittelbar aufeinanderfolgen müssen. Die erste Zeile in der Datei, die nicht mit einem '#' beginnt, und sei es auch nur eine Leerzeile, leitet bereits die eigentliche Maschinenbeschreibung ein.
Falls Sie Fragen, Kritik oder Anregungen haben, so wenden Sie sich bitte an Andreas Jung.