11.10.2013 Aufrufe

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

4.1. Formale <strong>Algorithmen</strong>modelle<br />

Diese Betrachtung legt folgendes nahe. Gehen wir von einer Konfiguration aus,<br />

die im Befehlsregister eine 1 enthält, d.h. es wird mit der Abarbeitung des Programms<br />

beim ersten Befehl begonnen, <strong>und</strong> in den beiden ersten Speicherregistern<br />

zwei natürliche Zahlen Ò <strong>und</strong> Ñ enthält, so steht nach Abarbeitung des Programms<br />

(genauer: in der sich nicht mehr verändernden Konfiguration, die bei Erreichen der<br />

END-Anweisung erreicht wird) im dritten Speicherregister der Rest bei der ganzzahligen<br />

Division von Ò durch Ñ. Daher ist es naheliegend zu sagen, daß die gegebene<br />

Registermaschine - genauer die durch das Programm gegebene Registermaschine -<br />

die Funktion Ö Ö×Ø Ò Ñ berechnet, die durch<br />

Ö Ö×Ø Ò Ñ genau dann, wenn ÖÒ<strong>und</strong> Ò ÕÑ Ö für ein Õ Æ<br />

gegeben ist.<br />

Wir verallgemeinern diese Idee in der folgenden Definition.<br />

Definition 4.2 Eine Registermaschine Å berechnet die Funktion Æ Ò Æ Ñ<br />

mit Ü Ü ÜÒ Ý Ý ÝÑ , wenn es Zahlen Ñ so gibt, daß<br />

Å jede Konfiguration Ü Ü ÜÒ in eine Konfiguration <br />

überführt, für die die Nummer einer END-Anweisung ist <strong>und</strong> Ý für Ñ<br />

gilt.<br />

Intuitiv bedeutet dies folgendes: Die Registermaschine beginnt die Abarbeitung<br />

ihres Programms mit dem ersten Befehl, wobei die Argumente bzw. Eingaben der<br />

Funktion in den ersten Ò Speicherregistern Ò stehen. Sie beendet ihre<br />

Arbeit bei Erreichen eines END-Befehls <strong>und</strong> die Resultate bzw. Ausgaben stehen in<br />

den vorab festgelegten Speicherregistern Ñ.<br />

Die arithmetischen Gr<strong>und</strong>funktionen lassen sich in diesem Sinn einfach berechnen.<br />

Z.B. berechnet die Registermaschine mit dem Program<br />

1 LOAD 1<br />

2 ADD 2<br />

3 STORE 3<br />

4 END<br />

aus den Werten Ü <strong>und</strong> Ý in den Registern <strong>und</strong> die Summe Ü Ý <strong>und</strong> legt diese<br />

im Register ab, realisiert also mit die Addition. Analog verfährt man bei<br />

den anderen Operationen.<br />

Beispiel 4.2 Wir betrachten die Registermaschine Å mit dem Programm<br />

71

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!