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 ==