|
『コンピュータプログラミングの概念・技法・モデル』 (コンピュータプログラミングのがいねん・ぎほう・モデル、CTM、CTMCP、) は、一般的なコンピュータプログラミングの概念について説明した教科書であり、ピーター・ヴァン・ロイとセイフ・ハリディにより著された。 日本語訳の訳者は羽永洋である。 この教科書の略称はCTMもしくはCTMCPである。 ガウディ本と呼ばれることもある。 ピーター・ヴァン・ロイはルーヴァン・カトリック大学の教授であり、セイフ・ハリディはスウェーデン王立工科大学の教授である。 この教科書は2004年に MIT Press から出版され、2007年に日本語訳が翔泳社から出版された。 この教科書では、マルチパラダイムプログラミング言語Ozの注意深く選択されたサブセット (Mozartプログラミングシステム) を使い、重要なプログラミングの概念と技法とモデル (プログラミングパラダイム) を説明している。 == 目次 == 以下にこの教科書の目次を示す。 * はじめに * プログラム例の実行について * 第1章 プログラミング概念入門 * 第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 歴史に関する注記 * 4.11 練習問題 * 第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 歴史に関する注記 * 13.6 練習問題 * 第IV部 付録 * 付録A Mozartシステム開発環境 * A.1 対話的インタフェース * A.2 コマンドラインインタフェース * 付録B 基本データ型 * B.1 数 (整数,浮動小数点数,文字) * B.2 リテラル (アトムと名前) * B.3 レコードとタプル * B.4 チャンク (制限つきレコード) * B.5 リスト * B.6 文字列 * B.7 仮想文字列 * 付録C 言語構文 * C.1 対話的文 * C.2 文と式 * C.3 文と式のための非終端記号 * C.4 演算子 * C.5 キーワード * C.6 字句構文 * 付録D 一般的計算モデル * D.1 創造的拡張原則 * D.2 核言語 * D.3 概念 * D.4 違う形の状態 * D.5 その他の概念 * D.6 階層的言語設計 * 参考文献 * 索引 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「コンピュータプログラミングの概念・技法・モデル」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 Concepts, Techniques, and Models of Computer Programming 」があります。 スポンサード リンク
|