SICP 読み (364) 5.5 翻訳系

む。風邪引いたっぽい。熱い茶でゴマカしつつ

問題 5.50

これは問題 5.19 なシミュレータを使え、という事なのか。とりあえず 5.19 までで盛り込まれている機能は

  • 命令トレイスな機能 (trace-on と trace-off というメセジで制御)
  • 命令トレイス時、直前ラベルが印字
  • レジスタのトレイスな機能 (reg-trace-on と reg-trace-off による)
  • ブレイクポイントなナニ
    • (set-breakpoint
    • (proceed-machine ) で実行再開
    • (cancel-breakpoint
    • (cancel-all-breakpoint ) で設定されているブレイクポイント全部削除

で、ラベルを覚えておきたいのでとりあえず compile だけなスクリプトを作ってみたんですが何も出てきません。仕方がないんで compile の戻りを display してみるか。

一応以下のソレでヤッてみたんですが

(add-load-path ".")
(load "load-eceval-compiler")
(load "ch5-compiler")
(define true #t)
(define false #f)

(let f ((l (statements
	    (compile '(begin
;; 4.1.2 な手続き
			) 'val 'return)
	    )))
  (cond ((not (null? l))
	 (display (car l))
	 (display "\n")
	 (f (cdr l)))))

以下の方法でファイルに落としたら

$ gosh compile.scm > objectCode.txt

行数が 6446 ってアナタ。こっちに貼り付け、と思っていたのですが無理だな。ちょっとまぢで体調微妙なんで休憩。復活できたら昨日出てきた不具合の対処を吸収して動作試験に挑む予定ですがどうなるか。