開発環境
- OS X Mavericks - Apple(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Scheme (プログラミング言語)
- MIT/GNU Scheme (処理系)
計算機プログラムの構造と解釈(Gerald Jay Sussman(原著)、Julie Sussman(原著)、Harold Abelson(原著)、和田 英一(翻訳)、ピアソンエデュケーション、原書: Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)(SICP))の5(レジスタ計算機での計算)、5.5(翻訳系)、翻訳系の概観、5.5.1(翻訳系の構造)、標的と接続、命令列とスタックの使用、問題 5.32-b.を解いてみる。
その他参考書籍
問題 5.32-b.
Alyssa P. Hackerの考えは上手くいくとは限らない。
評価器を拡張し、さらに特別な場合を認識させることにより、スタック演算を減らすことによる高速化を得られても、その分だけtestが増えることになり、実行が遅くなる可能性がある。(翻訳系の場合は最初にその時間が費やされるので、翻訳する時間がかかるようになっても、実行は速くなるという利点は変わらない。)
また、翻訳系のの利点を組み込むことにより、構文は長くなるので、その構文解析にも時間がかかるようになり、評価器の最適化につながらない可能性もある。(翻訳系は構文の解析は一度なのに対して、解釈系はその都度構文を解析する。)
ということで、翻訳系の最適化の全てを評価器に組み込むことは、必ずしも良い考えとは限らない。
0 コメント:
コメントを投稿