@uents blog

Code wins arguments.

2016-01-01から1年間の記事一覧

CourseraのMachine Learningコースを修了した

SICPを読み終えてからやると決めていた機械学習の勉強について、 まずはAndrew Ng先生のCoursera Machine Learningのコースを修了しました。 コースの途中、Pokemon GOにハマって危なかったけれど何とかクリア! www.coursera.org コースの内容 全11週に渡っ…

計算機プログラムの構造と解釈(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データの表現 基本リスト演算の実装 スタックの実装 無限メモリーの幻想の維持 ストップアンドコピーごみ集めの実装 メモリ管理とガベージコレクションの話。無限…

SICP 読書ノート#73 - 5.2 レジスタ計算機シミュレータ(2) (pp.318-319)

「§5.2.4 計算機の性能の監視」から。 レジスタ計算機シミュレータにinspectorやdebuggerを実装していくみたい。面白そう。 まずはテキスト通り、スタックの状況をチェックするコマンドを実装する。 ;;;; stack (define (make-stack) - (let ((s '())) + (le…

SICP 読書ノート#72 - 5.2 レジスタ計算機シミュレータ(1) (pp.306-317)

テキストを読んでも文字ばかりで全然頭に入ってこないので、まずはシミュレータをがっと実装した。 https://github.com/uents/sicp/blob/master/ch5-register-simulator いつものようにRacketで動かせるように修正してます。 他にもデバッグのために実行手続…

SICP 読書ノート#71 - 5.1 レジスタ計算機の設計 (pp.293-306)

色々と忙しくてサボってましたが、約半年ぶりに再開します。 Schemeを忘れていないかと心配でしたが、 4章までの苦労が染み付いてたせいか案外そうでもなかった。よかった! 5章を学ぶ意味 5章の冒頭にまとめてあります。 4章ではLispの言語解釈について学ぶ…