BuK/IIm10/BuK-Übung08 G1
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
= RAM-Berechenbarkeit =
== Aufgabenstellung ==
Zeigen Sie, dass die Multiplikationsfunktion für natürliche Zahlen RAM-berechenbar ist.
<language>Scheme</language>
== Lösung ==
Die einzelnen Zahlen der Gleichung <math>a*b=c</math> werden wie folgt auf die Variablen verteilt.
<math>
\begin{array}{ccc}
a & \mapsto & R1\\
b & \mapsto & R2 \\
c & \mapsto & R0
\end{array}
</math>
Somit kann für das Beispiel <math>a=2</math> und <math>b=3</math> dann folgendes Programm angegeben werden.
<code id="4de36587d26b6">
0 R1 = 2
1 R2 = 3
2 R3 = 1
3 IFZERO R2 GOTO
4 R0 += R1
5 R2 -= R3
6 GOTO 3
7 STOP
</code>
= RAM-Interpreter=
== Aufgabenstellung ==
Verwenden Sie VCC aus AtoCC, um einen Interpreter für RAM-Programme zu entwickeln.
== Lösung ==
= LOOP-Berechenbarkeit =
== Aufgabenstellung ==
Zeigen Sie, dass die Multiplikationsfunktion für natürliche Zahlen LOOP-berechenbar ist.
== Lösung ==
Die einzelnen Zahlen der Gleichung <math>a*b=c</math> werden wie folgt auf die Variablen verteilt.
<math>
\begin{array}{ccc}
a & \mapsto & x1\\
b & \mapsto & Konstante \\
c & \mapsto & x0
\end{array}
</math>
Somit kann für das Beispiel <math>a=2</math> und <math>b=3</math> dann folgendes Programm angegeben werden.
<code>
x1 = 2;
LOOP x1 DO
x0 := x0 + 3;
END
</code>
= LOOP- und WHILE-Interpreter =
== Aufgabenstellung ==
Verwenden Sie VCC aus AtoCC, um einen Interpreter für LOOP-Programme zu entwickeln. Erweitern Sie im nächsten Schritt die LOOP-Sprache durch das WHILE-Sprachelement, um einen Interpreter für WHILE-Programme zu erhalten.
== Lösung ==
= GOTO-Interpreter =
== Aufgabenstellung ==
Verwenden Sie VCC aus AtoCC, um einen Interpreter für GOTO-Programme zu entwickeln.
== Lösung ==