2006-09-20
1.2 変数
1.3 関数
1.4 リスト
1.5 リストを扱う関数
1.6 正しさ
1.7 複雑性
1.8 遅延評価
1.9 高階プログラミング
1.10 並行性
1.11 データフロー
1.12 明示的な状態
1.13 オブジェクト
1.14 クラス
1.15 非決定性と時間
1.16 原子性
1.17 ここからどこへ
1.18 演習問題
I. 汎用計算モデル
2. 宣言的計算モデル
2.1 実践的プログラミング言語を定義する
2.2 単一代入記憶
2.3 核言語
2.4 核言語の意味論
2.5 メモリ管理
2.6 核言語から実践的言語へ
2.7 例外
2.8 より進んだ話題
2.9 演習問題
3. 宣言的プログラミングテクニック
3.1 宣言的とは何か
3.2 繰り返し的計算
3.3 再帰的計算
3.4 再帰によるプログラミング
3.5 時間と空間の効率
3.6 高階プログラミング
3.7 抽象データ型
3.8 非宣言的なものの必要性
3.9 小規模プログラムの設計
3.10 演習問題
4. 宣言的並行性
4.1 データ駆動型並行モデル
4.2 スレッドプログラミングの基本テクニック
4.3 ストリーム
4.4 宣言的並行モデルを直接使う
4.5 遅延実行
4.6 ソフトリアルタイムプログラミング
4.7 Haskell言語
4.8 宣言的プログラミングの限界と拡張
4.9 より進んだ話題
4.10 演習問題
5. メッセージ伝達型並行性
5.1 メッセージ伝達型並行モデル
5.2 ポートオブジェクト
5.3 簡単なメッセージプロトコル
5.4 並行性のためのプログラミングデザイン
5.5 リフト制御システム
5.6 メッセージ伝達モデルを直接使う
5.7 Erlang言語
5.8 より進んだ話題
5.9 演習問題
6. 明示的状態
6.1 状態とは何か
6.2 状態とシステム構築
6.3 明示的状態をもつ宣言的モデル
6.4 データ抽象
6.5 状態のあるコレクション
6.6 状態のある推論
6.7 大規模プログラムの設計
6.8 事例研究
6.9 より進んだ話題
6.10 演習問題
7. オブジェクト指向プログラミング
7.1 継承
7.2 完全なデータ抽象としてのクラス
7.3 増分的データ抽象としてのクラス
7.4 継承を使ったプログラミング
7.5 他の計算モデルとの関連
7.6 オブジェクトシステムの実装
7.7 Java言語(逐次部分)
7.8 アクティブオブジェクト
7.9 演習問題
8. 状態共有型並行性
8.1 状態共有型並行モデル
8.2 並行性のあるプログラミング
8.3 ロック
8.4 モニタ
8.5 トランザクション
8.6 Java言語(並行部分)
8.7 演習問題
9. 関係型プログラミング
9.1 関係型計算モデル
9.2 さらなる例
9.3 関係から論理型プログラミングへ
9.4 自然言語解析
9.5 文法インタープリタ
9.6 データベース
9.7 Prolog言語
9.8 演習問題
II. 特殊化された計算モデル
10. グラフィカルユーザインターフェースプログラミング
10.1 宣言的/手続き的アプローチ
10.2 宣言的/手続き的アプローチを使う
10.3 対話的学習ツール ProtoTyper
10.4 事例研究
10.5 GUIツールの実装
10.6 演習問題
11. 分散プログラミング
11.1 分散システムの分類
11.2 分散モデル
11.3 宣言的データの分散
11.4 状態の分散
11.5 ネットワーク感知性
11.6 分散プログラミングの共通パターン
11.7 分散プロトコル
11.8 部分的失敗
11.9 セキュリティ
11.10 アプリケーションを作る
11.11 演習問題
12. 制約プログラミング
12.1 伝播と探索
12.2 プログラミングテクニック
12.3 制約に基づく計算モデル
12.4 計算空間の定義と使用
12.5 関係型計算モデルの実装
12.6 演習問題
III. 意味論
13. 言語意味論
13.1 汎用計算モデル
13.2 宣言的並行性
13.3 8つの計算モデル
13.4 よくある抽象方法の意味論
13.5 歴史に関する注釈
セ記事を書く
セコメントをする