2015-04-01から1ヶ月間の記事一覧
ノート Exercise 5.52 C言語でShemeコンパイラを作れと言っているのではなく、この章のコンパイラをCのプログラムを吐く様に改造せよと言っている。 ここでもswiftを使う事にする。直ぐに気づく問題点は レジスタマシンやアセンブラのレベルに変換する訳では…
ノート Exercise 5.51 5.2ではレジスタマシン・シミュレータをSchemeで実装したが、これをC言語で実装するなら5.4のExplicit Evaluatorは基本的には何も変換する必要はない筈なのできっと問題の意図とは異なる。そうすると『レジスタマシン相当の実行環境をC…
ついに最終節 ノート REPLからコンパイラを呼び出して、REPLの環境で実行する。 explicit controller machineはインタープリタだが、コードをコンパイルする組み込みの手続きを用意する。変数として格納されている手続きをオペレータとしてprocに入れた後に…
ノート Compiling linkage code compile-linkageは各式を命令に変換した後、次の命令への繋ぎを生成する。 引数が'returnの時はレジスタcontinueの内容にジャンプ、'nextであれば何もしない、その他であれば引数をラベルとみなしてそのラベルにジャンプする…
ノート 前節のインタープリタのプログラムは機械語のプログラムと捉えることができる。 ソースプログラムと機械語とを橋渡しする方法には二つある。 一つはインタープリタ。インタープリタの基本的な命令は機械語のサブルーチンとして実現されていて、ソース…
ノート ここに書いてあるドライバーループは既に実装として使っている。しかもExcersese 5.25では少し変更もしている。 Exercise 5.25の結果でもちゃんと例は動作する。 (define (append x y) (if (null? x) y (cons (car x) (append (cdr x) y)))) ;;; EC-E…