Prof. Dr. R. Laue
Dr. A. Kohnert                                                                                                                                             SS 2005
Compilerbau und formale Sprachen
                                Übungsblatt 13
                              

URL:         /axel/compiler_ss05_blatt13.html

 Dieses Blatt wird am 13.7.2005 besprochen.




Aufgabe 31 primitiv rekursiv 
 

Zeigen Sie, dass ganzzahlige Division und Divisionsrest primitiv rekursiv sind.



Aufgabe 32 Ackermann Funktion


Die i-te Ackermann Funktion Bi(x)  wird rekursiv definiert:

B0(0) := 1; B0(1):= 2; B0(x) :=x+2 falls x>=2.

Bi+1(x) := Bix(1)

dabei bedeutet  Bix die x-fache Komposition, wobei x=0 die Identität bei der Komposition von Abbildungen ist, d.h. die Funktion x |--> x. Die grosse Ackermann Funktion wird definiert als
A(i,x):= Bi(x)
Zeigen Sie:
1) Bi(x) ist primitiv rekursiv.
2) Monotonie in allen Parametern:

- Bix(y) <  Bix(y+1)
- Bix(y) <  Bix+1(y)
- Bix(y) <=  Bi+1x(y)               für alle i,y,x


Aufgabe 33 Ackermann Funktion (source code mitbringen)

Implementieren Sie die grosse Ackermann Funktion per rekursivem Unterprogramm in einer Programmiersprache Ihrer Wahl. Lassen Sie das Programm   laufen. Es sollte für die meisten Parameter Werte relativ schnell abstürzen. Warum?