Aufgaben / Übungen

Blatt 6 (neu)

Aufgabe 1

Implementieren Sie den in der Vorlesung vorgestellten LISP-Interpreter in einer Programmiersprache Ihrer Wahl. Lassen Sie dabei optional jeden Aufruf von apply bzw. eval mit den aktuellen Arguemten ausgeben. (Wenn Sie Lisp wählen, können Sie die Übersetzung aus Blatt5/Auf.4 verwenden)

Aufgabe 2 (falls Lust :-)

Programmieren Sie einen Übersetzer, der M-Ausdrücke in S-Ausdrücke umwandelt. Wo sind ernsthafte Probleme? (Ersetzen Sie dabei das Symbol Lambda durch die Zeichenreihe lambda)

Aufgabe 3 (nochmal neu)

Übersetzen Sie die folgenden M-Ausdrücke in S-Ausdrücke, und lassen Sie diese mit den angegebenen Argumenten interpretieren (lambda=Lambda):
  1. lambda[[x;y]; lambda[[f]; cons[lambda[[y];f[y]][A];cons[f[x];(x.y)]]]
                  [label[h; lambda[[x]; 
                               [atom[x]->lambda[[h];(h.B)][y];
                                T->lambda[[y]; cons[cons[h[C];h[D]];(x.y)]][E]]
                   ]]]
              
    angewand auf die Argumente (F.G);H.
  2. lambda[[f;x];f[x]][lambda[[x];cons[T;x]];F]

Dietmar Lammers
Last modified: Tue Jul 3 09:40:49 MET DST 2001