Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
4.1. RAM 101<br />
2. READ<br />
3. STORE ∗2<br />
4. IF R0 = m GOTO 7<br />
5. SUCC 2<br />
6. GOTO 2<br />
Teil 2 (<strong>in</strong> den gesprungen wird, falls die E<strong>in</strong>gabe m ist) beg<strong>in</strong>nt damit, das der Kopf<br />
nach l<strong>in</strong>ks gestellt wird (:= 4) und der Zustand q0 (:= 0) ist.<br />
Dann werden die e<strong>in</strong>zelnen Zeilen der Übergangstabelle programmiert. In dem Fall,<br />
dass ke<strong>in</strong> Übergang existiert, wird zu Teil 3 (Ausgabe) gesprungen.<br />
Teil 3 des Programms schreibt , , . . ., bis es auf die Zahl := m<br />
(d.h. auf das Endsymbol @) stößt. Dann hält es:<br />
Zeile Befehl<br />
k LOAD !3<br />
k + 1 STORE 4 [Am Anfang: = 3]<br />
k + 2 LOAD 2<br />
k + 3 WRITE<br />
k + 4 SUCC 2<br />
k + 5 IF R0 = m GOTO (k + 7)<br />
k + 6 GOTO (k + 2)<br />
k + 7 STOP<br />
Beispiel 7. RAM-Simulation e<strong>in</strong>er e<strong>in</strong>fachen TM.<br />
Die folgende TM realisiert die Funktion SUCC:<br />
M = ({q0, q1}, {|, @}, δ, q0, q1)<br />
mit den folgenden Übergängen<br />
(1) (q0, |) → (q0, R)<br />
(2) (q0, @) → (q1, |)<br />
(3) (q1, |) → (q1, R)<br />
(4) (q1, #) → (q1, @)<br />
Die Simulation hat die drei oberen Teile, wobei Teil 2 wie folgt die vier Übergänge<br />
simuliert:<br />
Zeile Befehl Kommentar<br />
7. LOAD !3<br />
8. STORE 2 Initialposition des Kopfes (+ 3)<br />
9. LOAD ∗2 n R0 steht das momentan gelesene Symbol<br />
10. IF R1 = 0 GOTO a a-Übergänge (1), (2) (Zustand q0)<br />
11. IF R0 = 1 GOTO b Hier Zustand q1, b-Übergang (3)<br />
12. IF R0 = 0 GOTO c Hier Zustand q1, c-Übergang (4)<br />
13. GOTO k Zustand q1, Symbol @-Sprung <strong>in</strong> den Teil 3<br />
a = 14. IF R0 = 1 GOTO d d-Übergang (1)<br />
15. IF R0 = 2 GOTO e e-Übergang (2)<br />
d = 16. SUCC 2 Kopf nach rechts<br />
GOTO 9<br />
e = 17. LOAD !1 Statt @ = 2 wird | = 1 geschrieben<br />
18. STORE ∗2<br />
19. STORE 1 Zustand q1<br />
20. GOTO 9.<br />
b = 21. SUCC 2 Kopf nach rechts<br />
22. GOTO 9.<br />
c = 23. LOAD !2<br />
24. STORE ∗2<br />
25. GOTO k Also ist Zeile k = 26 der Anfang von Teil 3