5.5.7 翻訳したコードと評価器のインターフェース – SICP(計算機プログラムの構造と解釈)その296

翻訳したコードを受け取った場合の処理を追加し、コードを翻訳して REPL 呼び出す手続きを追加する。

実行には以下のファイル群を利用する。

  • compiler.scm (5.5節の翻訳系)
  • ece4compiler.scm (5.4節の積極制御評価器計算機)
  • eval4ece.scm (4.1節の超循環評価器)
  • register_machine.scm (5.2節のレジスタ計算機)

これらをまとめたアーカイブ(sicp5.5.7.zip)。

実行してみる。

$ gosh
gosh> (load "./ece4compiler.scm")
#t
gosh> (compile-and-go
  '(define (factorial n)
     (if (= n 1)
         1
         (* (factorial (- n 1))  n))))

(total-pushes = 0 max-depth = 0)
;;; EC-Eval value:
ok

;;; EC-Eval input:
(factorial 5)

(total-pushes = 31 max-depth = 14)
;;; EC-Eval value:
120

ちゃんと動作している。

計算機プログラムの構造と解釈
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン
ピアソンエデュケーション
売り上げランキング: 6542
«
»