2014年9月25日木曜日

開発環境

計算機プログラムの構造と解釈[第2版](ハロルド エイブルソン (著)、ジュリー サスマン (著)、ジェラルド・ジェイ サスマン (著)、Harold Abelson (原著)、Julie Sussman (原著)、Gerald Jay Sussman (原著)、和田 英一 (翻訳)、翔泳社、原書: Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)(SICP))の4(超言語的抽象)、4.1(超循環評価器)、4.1.7(構文解析を実行から分離する)、問題 4.23.を解いてみる。

その他参考書籍

問題 4.23.

並びが一つの式しか持たない通常の場合。

並び (exp)

本文の版。

(analyze-sequence (exp))
;; procs: ((analyze exp))
(loop (analyze exp) ())
(analyze exp)

Alyssa P. Hackerの版。

(analyze-sequence (exp))
;; procs: ((analyze exp))
(lambda (env) (execute-sequence ((analyze exp)) env))

二つの式を持つ並びについて。

並び (exp1 exp2)

本文の版。

(analyze-sequence (exp1 exp2))
;; procs ((analyze exp1) (analyze exp2))
(loop (analyze exp1) ((analyze exp2)))
(loop (sequentially (analyze exp1) (analyze exp2))
      ())
(sequentially (analyze exp1) (analyze exp2))
(lambda (env) ((analyze exp1) env) ((analyze exp2) env))

Alyssa P. Hackerの版。

(analyze-sequence (exp1 exp2))
;; procs: ((analyze exp1) (analyze exp2))
(lambda (env) (execute-sequence ((analyze exp1) (analyze exp2)) env))

以上より、Alyssa P. Hackerの版は、並びの個々の式は解析されるが、並び自身は解析されない。

0 コメント:

コメントを投稿