BuK/IIm11/Studenten/simawiel/ue10

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

== Entwickeln Sie eine Beweisidee zu folgendem Satz ==

Jede primitiv-rekursive Funktion ist LOOP-berechenbar und
umgekehrt.

LOOP-Programme sind gekennzeichnet durch folgende Konstrukte:
* Wertzuweisungen (Bindung an Variablen)
* Konstanten
* Iterationen / Zyklen (LOOP <Wert> DO <Sequenz> END)
* Programmaufrufe

weiterhin ist von vornherein bekannt, wie viele Zyklen ein LOOP-Programm durchläuft.

Primitiv-rekursive Funktionen sind wie folgt definiert:
* Es gibt Basisfunktionen, die allesamt total und berechenbar sind.
** Nachfolgerfunktion
** Nullfunktion
** Projektionsfunktion
Mit diesen Basisfunktionen und den 2 folgenden Techniken können weitere Funktionen beschreiben werden:
* Primitive Rekursion
* Substitution

Nun können die Konstrukte aus der LOOP-Sprache wie folgt den Vorschriften der primitiv-rekursiven Funktionen zugeordnet werden.

* Variablen können der Zahl den Parametern in der Funktionsdefinition zugeordnet werden
* Konstanten können durch die Nullfunktion erreicht werden.
* Zyklen werden durch die primitive Rekursion erreicht.
* Programmaufrufe entsprechen Substitution

Umgekehrt kann zugeordnet werden:

* Die Nachfolgerfunktion kann durch die primitiv-rekursive Funktion add realisiert werden
* Die Projektionsfunktion bedeutet in LOOP-Programmen einen Programmaufruf mit n Argumenten.