Ausarbeitung des „Interpreter“ Referats
Ausarbeitung des „Interpreter“ Referats
Ausarbeitung des „Interpreter“ Referats
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Jetzt können wir schon mit der Implementierung anfangen. Und<br />
so sieht der Interpreter für unsere einfache Programmiersprache:<br />
(define eval-program<br />
(lambda (pgm)<br />
(cases program pgm<br />
(a-program (body)<br />
(eval-expression body (initenv))))))<br />
(define eval-expression<br />
(lambda (exp env)<br />
(cases expression exp<br />
(lit-exp (datum) datum)<br />
(var-exp (id) (apply-env env id))<br />
(primapp-exp (prim rands)<br />
(let ((args (eval-rands rands<br />
env)))<br />
(apply-primitive prim args)))<br />
)))<br />
Die Funktion init-env, deren Implementierung hier nicht<br />
gezeigt ist, dient dazu eine leere Umgebung zu erzeugen für das<br />
Programm mit Körper body. Danach wird evalexpression<br />
so oft aufgerufen bis wir alle einzelnen Elemente<br />
von body haben und eine eventuelle Anwendung auf denen<br />
ausgeführt haben.