Next: 5.1 beginのコード生成
Up: ソフトウェア特論 講義資料 Scheme コンパイラ処理系
Previous: 4 定数のコンパイル
コンパイルにおいても,スペシャルフォームに対しては
個別の取り扱いが必要になります.
(defun comp-specialform (name params env)
(case name
(quote (gen 'CONST (car params)))
(begin (comp-begin params env))
(set!
(seq (comp (cadr params) env)
(gen-set (car params) env)))
(if
(comp-if (car params)
(cadr params)
(caddr params) env))
(lambda
(gen 'FN
(comp-lambda (car params)
(cdr params)
env)))))
quoteは引数を評価せずに返すというものであり,
引数を定数とみなすコードを生成します.
generated through LaTeX2HTML. M.Inaba 平成18年5月6日