計算機プログラムの構造と解釈(SICP)で計算機科学を学ぼう
- 作者: ジェラルド・ジェイサスマン,ジュリーサスマン,ハロルドエイブルソン,Gerald Jay Sussman,Julie Sussman,Harold Abelson,和田英一
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2000/02
- メディア: 単行本
- 購入: 35人 クリック: 1,149回
- この商品を含むブログ (486件) を見る
「計算機プログラムの構造と解釈」(SICP) を読んだ時の記録をまとめたページです。
ソースコード
GitHubで公開しています。
第1章 手続きによる抽象の構築
- #1 - 僕がSICPを読み始めた理由
- #2 - 1.1 名前と環境 (pp.1-4)
- #3 - 1.2 手続きとその生成するプロセス(pp.5-30)
- #4 - 1.3 高階手続きによる抽象 (pp.31-44)
第2章 データによる抽象の構築
- #5 - 2.1 データ抽象入門 (pp.45-52)
- #6 - 2.1.4 区間算術演算 (pp.52-54)
- #7 - 2.2 階層データ構造と閉包性 (pp.55-65)
- #8 - 2.2.3 公認インターフェースとしての並び (pp.65-70)
- #9 - 2.2.3 公認インターフェースとしての並び - 写像の入れ子 (pp.71-73)
- #10 - SICPのためのプログラミング環境構築
- #11 - 2.2.4 図形言語(1) (pp.73-83)
- #12 - 2.2.4 図形言語(2) (pp.73-83)
- #13 - 2.2.4 図形言語(3) (pp.73-83)
- #14 - 2.2.4 図形言語(4) (pp.73-83)
- #15 - 2.3 記号データ (pp.83-88)
- #16 - 2.3.3 集合の表現 (pp.88-94)
- #17 - 2.3.4 Huffman符号化木(1) (pp.94-99)
- #18 - 2.3.4 Huffman符号化木(2) (pp.94-99)
- #19 - 2.4 抽象データの多重表現 (pp.99-105)
- #20 - 2.4.3 データ主導プログラミングと加法性(1) (pp.105-108)
- #21 - 2.4.3 データ主導プログラミングと加法性(2) (pp.108-109)
- #22 - 2.4.3 データ主導プログラミングと加法性(3) (pp.109-110)
- #23 - 2.5.1 汎用算術演算 (pp.110-113)
- #24 - 2.5.2 異なる型のデータ統合 (pp.113-118)
- #25 - 2.5.3 記号代数 (pp.118-125)
- #26 - 第2章 まとめ
第3章 標準部品化力、オブジェクトおよび状態
- #27 - 3.1 代入と局所状態 (pp.127-137)
- #28 - 3.2 評価の環境モデル (pp.138-147)
- #29 - 3.3.1 可変リスト構造 (pp.147-153)
- #30 - 3.3.2 キューの表現 (pp.153-156)
- #31 - 3.3.3 表の表現 (pp.156-160)
- #32 - 3.3.4 ディジタル回路のシミュレータ (pp.160-168)
- #33 - 3.3.5 制約の拡散 (pp.168-175)
- #34 - 3.4 並列性:時が本質的 (pp.175-187)
- #35 - 3.5.1 ストリームは遅延リスト (pp.187-192)
- #36 - 3.5.2 無限ストリーム(1) (pp.193-196)
- #37 - 3.5.2 無限ストリーム(2) (pp.196-197)
- #38 - 3.5.3 ストリームパラダイムの開発 (pp.198-205)
- #39 - 3.5.4 ストリームと遅延評価 (pp.205-209)
- #40 - 3.5.5 関数プログラムの部品度とオブジェクトの部品化 (pp.209-210)
- #41 - 第3章 まとめ
第4章 超言語的抽象
- #42 - RubyでSchemeインタプリタをつくろう(1)
- #43 - RubyでSchemeインタプリタをつくろう(2)
- #44 - RubyでSchemeインタプリタをつくろう(3)
- ここで一度行き詰まりました…
- #45 - RubyでSchemeインタプリタをつくろう(4) - 最初からやり直します
- #46 - RubyでSchemeインタプリタをつくろう(5) - REPL/字句解析/構文解析 (pp.213-228)
- #47 - RubyでSchemeインタプリタをつくろう(6) - 実行オブジェクトへのマッピング (pp.213-228)
- #48 - RubyでSchemeインタプリタをつくろう(7) - 関数の評価と適用 (pp.213-228)
- #49 - RubyでSchemeインタプリタをつくろう(8) - 環境に対する操作 (pp.213-228)
- #50 - RubyでSchemeインタプリタをつくろう(9) - 基本手続き/四則演算/リスト演算 (pp.213-228)
- #51 - RubyでSchemeインタプリタをつくろう(10) - 導出された式 (pp.213-228)
- #52 - 4.1.5 プログラムとしてのデータ (pp.228-230)
- #53 - 4.1.6 内部定義 (pp.230-234)
- #54 - 4.1.7 構文解析から実行を分離する (pp.234-237)
- #55 - 4.2.1 正規順序と作用的順序
- #56 - 4.2.2 遅延評価の解釈系 (pp.238-243)
- #57 - 4.2.3 遅延評価リストとしてのストリーム (pp.243-245)
- #58 - 4.3 非決定性計算 - 継続とは何か (pp.245)
- #59 - 4.3 非決定性計算 - call/ccによるambオペレータの実装 (pp.245)
- #60 - 4.3.1 ambと探索 (pp.246-248)
- #61 - 4.3.2 非決定性のプログラムの例 (pp.248-250)
- #62 - 4.3.2 自然言語の構文解析 (pp.250-253)
- #63 - 4.3.3 amb評価器の実装 (pp.254-261)
- #64 - 4.4 論理型プログラミング (pp.261-269)
- #65 - 4.4.1 プログラムとしての論理 (pp.269-270)
- #66 - 4.4.2-4.4.3 質問システムはどう働くか〜論理プログラミングは数学的論理か (pp.270-278)
- #67 - 4.4.4 質問システムの実装(1) (pp.278)
- #68 - 4.4.4 質問システムの実装(2) (pp.278-292)
- #69 - 4.4.4 質問システムの実装(3) (pp.278-292)
- #70 - 第4章 まとめ
第5章 レジスタ計算機での計算
- #71 - 5.1 レジスタ計算機の設計 (pp.293-306)
- #72 - 5.2 レジスタ計算機シミュレータ(1) (pp.306-317)
- #73 - 5.2 レジスタ計算機シミュレータ(2) (pp.318-319)
- #74 - 5.3 記憶の割当てとごみ集め (pp.319-327)
- #75 - 5.4 積極制御評価機 (pp.327-338)
- #76 - 5.5 翻訳系(1) (pp.339-343)
- #77 - 5.5 翻訳系(2) (pp.343-360)
- #78 - 5.5 翻訳系(3) (pp.360-362)
- #79 - 5.5 翻訳系(4) (pp.362-366)
- #80 - SICPを読み終えて