09.02.2014 Aufrufe

Ausarbeitung des „Interpreter“ Referats

Ausarbeitung des „Interpreter“ Referats

Ausarbeitung des „Interpreter“ Referats

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!