問題5.32 – SICP(計算機プログラムの構造と解釈)その283

問題5.32 a.

(define eceval
  (make-machine
        ;; 省略
      ev-application
        (save continue)
        (assign unev (op operands) (reg exp))
        (assign exp (op operator) (reg exp))
        (test (op symbol?) (reg exp))
        (branch (label ev-operand-symbol))
        (save env)
        (save unev)
        (assign continue (label ev-appl-did-operator-not-symbol))
        (goto (label eval-dispatch))
      ev-operand-symbol
        (save unev)
        (assign continue (label ev-appl-did-operator-symbol))
        (goto (label eval-dispatch))
      ev-appl-did-operator-not-symbol
        (restore unev)
        (restore env)
        (goto (label ev-appl-did-operator))
      ev-appl-did-operator-symbol
        (restore unev)
        (goto (label ev-appl-did-operator))
      ev-appl-did-operator
        (assign argl (op empty-arglist))
        (assign proc (reg val))
        (test (op no-operands?) (reg unev))
        (branch (label apply-dispatch))
        (save proc)
        ;; 省略
      )))

問題5.32 b.

"更に多くの特別な場合" という "多く" がネックになるのでは?

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