next up previous
Next: 1.1 シンボルとアトムの処理 Up: ソフトウェア特論 講義資料 Scheme言語とインタプリタ Previous: ソフトウェア特論 講義資料 Scheme言語とインタプリタ

1 Schemeインタプリタの実現

Lispのインタプリタを作るのにもっとも適した言語は Lispといわれます.LispでSchemeインタプリタを記述する ことで,Lispの処理系をどのように作るかを説明します. まず,最初に簡単なしくみがわかるように考えたインタプリタの本体は以下の ようになります.

(defun scheme-interpreter ()
  (init-scheme-interpreter)
  (loop
   (format t "~&==> ")
   (print (interp (read) nil))))

(defun interp (x &optional env)
  (cond
   ((symbolp x) (get-var x env))
   ((atom x) x)
   ((member (car x) '(quote begin set! if lambda))
    (interp-specialform (car x) (cdr x) env))
   (t
    (interp-procedure (car x) (cdr x) env))))
interpがlispのevalに相当します.



generated through LaTeX2HTML. M.Inaba 平成18年5月6日