@uents blog

Code wins arguments.

2016-05-01から1ヶ月間の記事一覧

計算機プログラムの構造と解釈(SICP)を読み終えて

SICPようやく読み終わりました。 2014年5月から読み始めたので、 足かけ丸2年。愛娘も1才から3才に成長。 練習問題やブログの記事を上げていたGitHubのコミットグラフを見ると、 サボっていた期間も結構あり、実働は1年ちょっとくらいかな。 他のSICPブログ…

SICP 読書ノート#79 - 5.5 翻訳系(4) (pp.362-366)

いよいよ最後のセクション。練習問題はやってないです。 5.5.7 翻訳したコードと評価器のインターフェース (compile)でコンパイルしたコードを積極制御評価器で動作させる。 いつものように、まずはRacketで動かせるようにした。 https://github.com/uents/s…

SICP 読書ノート#78 - 5.5 翻訳系(3) (pp.360-362)

今回は「5.5.6 文面アドレス」から。 5.5.6 文面アドレス 「文面」とはlexicalの直訳のよう。 これまでの評価機は変数の値を探す際に、実行時にenvフレームを 都度探索していたので、それなりに計算コストがかかっていたはず。 Schemeはレキシカルスコープな…

SICP 読書ノート#77 - 5.5 翻訳系(2) (pp.343-360)

前回に続き翻訳系のセクションを読み進めて行きました。 5.5.2 式の翻訳 defineやset!などの特殊形式のコンパイルの話。ざっと読んだ。 5.5.3 組み合わせの翻訳 主に手続き適用のコンパイルの話。簡単にまとめると、 compile-applicationでは、演算子と非演…

SICP 読書ノート#76 - 5.5 翻訳系(1) (pp.339-343)

いよいよ最後のセクション。 これまでレジスタマシン、積極制御評価機(解釈系=インタプリタ)と来て、 ここでは翻訳系(=コンパイラ)について学びます。 翻訳系の概観 ひとことで言うと「環境をenvに保持し、引数リストをarglに集積し、 適用する手続きをproc…

SICP 読書ノート#75 - 5.4 積極制御評価機 (pp.327-338)

積極制御評価機 (explicit-control evaluator) とは、 レジスタマシンシミュレータ上で動作する マシン語で実装されたScheme処理系のことのよう。 Schemeプログラム→積極制御評価機→レジスタマシン→Scheme処理系 と、さらに抽象化が増してきた。 実装として…

SICP 読書ノート#74 - 5.3 記憶の割当てとごみ集め (pp.319-327)

「§5.3 記憶の割当てとごみ集め」から。以下を順に読みました。 ベクターとしてのメモリ Lispデータの表現 基本リスト演算の実装 スタックの実装 無限メモリーの幻想の維持 ストップアンドコピーごみ集めの実装 メモリ管理とガベージコレクションの話。無限…