SICP 読み (363) 5.5 翻訳系
端末のリカバリメディア作成の間隙を縫って作業。
とりあえず問題 5.49 はこの位でスルーする事に。次も若干微妙だなぁ。_仕事のすべての細部が得られる_というのは一体どーゆー意味だ。
ぐだぐだ言ってないでヤるか。
問題 5.50
とりあえずいちいちコピペは面倒なのでスクリプトを作る。不具合を以下に列挙
- #t を 4.1 な評価器が使っている
- #t および #f は低水準な層で true、false が定義されているのでこれを使う
- apply が無い
- どうすりゃ良いのか。でも + だの - だのという primitive なソレは EC-Eval でも使えるなぁ。true とか false とかも同様。でも apply を評価させると Unbound なのか、と言いつつ ch5-eceval-support にて setup-environment なソレを確認。primitive-procedures に追加してみる。
- list が無い
- これも primitive-procedures に追加
- let が無い
- これは compiler が悪いな。修正。
- map が無い
- primitive-procedure に追加
で、現時点で理由が不明な不具合。assemble の出力っぽいソレが膨大に出てて先頭までめくれない状態ッス。
うーん
駄目だ。とりあえず起動スクリプトの一部を貼っておいて別途検討。
(add-load-path ".") (load "load-eceval-compiler") (load "ch5-compiler") (define true #t) (define false #f) (compile-and-go '(begin ;; 4.1.4 な評価器 ))
スタックダンプの一部も貼っとこ。
Stack Trace: _______________________________________ 0 args 1 (map (lambda (p) (p)) aprocs) At line 385 of "./ch5-regsim.scm" 2 value-proc 3 (set-contents! target (value-proc)) At line 258 of "./ch5-regsim.scm" 4 (instruction-execution-proc (car insts)) At line 139 of "./ch5-regsim.scm"
この上は assemble の結果が延々と出力されている上、てっぺんが見れません。