CTMの目次 ― 2006年09月20日 00時00分58秒
2006/09/09に書いたものだから、もう10日経ってますが。
ASAHIネット(http://www.asahi-net.or.jp)のjouwa/salonからホットコーナー(http://www.asahi-net.or.jp/~ki4s-nkmr/ )に転載したものから。
---
ある人から頼まれて、たびたび紹介している教科書
http://www.amazon.co.jp/exec/obidos/ASIN/0262220695/showshotcorne-22/ref=nosim
Peter Van Roy and Seif Haridi著「Concepts, Techniques, and Models of
Computer Programming」
の目次だけ日本語にして渡すことになりました。うまく行くと日本語版が出る
かもしれません。こういういい教科書を日本人が書けてない以上、せめて日本
語版が出ないと、世界との差は広がるばかりですから。といって、コンピュー
タ系出版社は不況もあって、目先儲かることしかやりたがらない状態になって
ますから、どうなることやら。
いままでCTMCPと略してましたが、どうも海外のサイトをみているとCTMと略
すことが多いみたいなので、これからCTMにします。^^;
この本、大部なので目次も項目がいっぱいです。手で入力するのは面倒なの
で、amazon.co.jpやamzon.comに行ったらありません。\(^O^)/ 出版元の
MIT Pressに行ったら、かろうじて章のタイトルまではありました
http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=10142&mode=toc
です。
でも、節タイトルまでみないと、この本がどれほど幅広い話題を扱っていて、
意味論や宣言的なプログラミングに力を入れているか、関数型、命令型、オブ
ジェクト指向、論理型のプログラミング、さらには分散プログラミングや制約
プログラミングの概念、モデルやテクニックについて述べているかわからない
と思うので、節タイトルは手で本から入れました。スペルミスがあったら教え
てください。
手で入れるだけで、小一時間かかりました。\(^O^)/
目次からはすぐにはわかりませんが、Ozプログラミング言語のサブセットに
なるよう注意深く設計された核言語を、いろんなプログラミングモデルを表現
できるように徐々に拡張していくアプローチ、そしてそれらのコードは、
Mozartプログラミングシステムで実行可能なので、実際に動かしながら学べる
という点も、本書の美点です。
長くなりますが、日本語の目次と英語の目次を以下に示します。
おかしなところ、もっといい訳があれば教えてください。
個人的に悩んだのは、
2.2 The single-assignment store
7.3 Classes as incremental data abstractions
11.5 Network awareness
かな。
「The single-assignment store」は、「単一代入記憶」としましたが、こ
れは、命令型プログラミング言語でいう変数とは違うという話なんです。Ozは、
関数型でも宣言的に書ける言語なので、一度束縛した変数は変更不可です。い
わゆる数学的な変数ですね。この概念を使って、並行プログラミングや分散プ
ログラミングで使う、自動的に同期をとってくれるデータフロー変数、あるい
は論理プログラミングで使う論理変数の意味がクリアになっているわけです。
「Classes as incremental data abstractions」は、「増分的データ抽象と
してのクラス」としましたが、これは、クラスは、継承によって増分というか
差分を徐々(インクリメンタル)に追加することで、データの抽象化ができると
いう話です。
「Network awareness」は、「ネットワーク感知性」としましたが、なんか
しっくり来ない。これは、ネットワーク透過なプログラミングをできるように
するために、サブシステムがネットワークの存在を知っていてちゃんと下働き
をやってくれるので、プログラマは簡単に分散プログラミングができるという
話なんですが。
日本語の目次
まえがき
例題プログラムを実行するには
1. プログラミングのコンセプト入門
1.1 計算機
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 歴史に関する注釈
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 層化された言語設計
参考文献
索引
英語の目次
Preface
Running the Example Programs
1. Introduction to Programming Concepts
1.1 A calculator
1.2 Variables
1.3 Functions
1.4 Lists
1.5 Functions over lists
1.6 Correctness
1.7 Complexity
1.8 Lazy evaluation
1.9 Higher-order programming
1.10 Concurrency
1.11 Dataflow
1.12 Explicit state
1.13 Objects
1.14 Classes
1.15 Nondeterminism and time
1.16 Atomicity
1.17 Where do we go from here?
1.18 Exercises
I. GENERAL COMPUTATION MODELS
2. Declarative Computation Model
2.1 Defining practical programming language
2.2 The single-assignment store
2.3 Kernel language
2.4 Kernel language semantics
2.5 Memory management
2.6 From kernel language to practical language
2.7 Excepctions
2.8 Advanced topics
2.9 Exercises
3. Declarative Programming Techniques
3.1 What is declarativeness?
3.2 Iterative computation
3.3 Recursive computation
3.4 Programming with recursion
3.5 Time and spcae efficiency
3.6 Higher-order programming
3.7 Abstract data types
3.8 Nondeclarative needs
3.9 Programming design in the small
3.10 Exercises
4. Declarative Concurrency
4.1 The data-driven concurrent model
4.2 Basic thread programming techniques
4.3 Streams
4.4 Using the declarative concurrent model directly
4.5 Lazy execution
4.6 Soft real-time programming
4.7 The Haskell language
4.8 Limitations and extensions of declarative programming
4.9 Advanced topics
4.10 Historical notes
4.11 Exercises
5. Message-Passing Concurrency
5.1 The message-passing concurrent model
5.2 Port objects
5.3 Simple message protocols
5.4 Program desing for concurrency
5.5 Lift control system
5.6 Using message-passing model directly
5.7 The Erlang language
5.8 Advanced topic
5.9 Exercises
6. Explicit State
6.1 What is state?
6.2 State and system building
6.3 The declarative model with explicit state
6.4 Data abstraction
6.5 Stateful collections
6.6 Reasoning with state
6.7 Program desing int the large
6.8 Case studies
6.9 Advanced topic
6.10 Exercises
7. Object-Oriented Programming
7.1 Inheritance
7.2 Classes as complete data abstrations
7.3 Classes as incremental data abstractions
7.4 Programming with inheritance
7.5 Relation to other computation models
7.6 Implementing the object system
7.7 The Java language (sequential part)
7.8 Active objects
7.9 Exercises
8. Shared-State Concurrency
8.1 The shared-state concurrent model
8.2 Programming with concurrency
8.3 Locks
8.4 Monitors
8.5 Transactions
8.6 The Java language (concurrent part)
8.7 Exercises
9. Relational Programming
9.1 The relational computation model
9.2 Further examples
9.3 Relation to logic programming
9.4 Natural language parsing
9.5 A grammar interpreter
9.6 Databases
9.7 The Prolog language
9.8 Exercises
II. SPECIALIZED COMPUTATION MODELS
10. Graphical User Interface Programming
10.1 The declarative/procedural approach
10.2 Using the declarative/procedural approach
10.3 The Prototyper interactive learning tool
10.4 Case studies
10.5 Implementing the GUI tool
10.6 Exercises
11. Distributed Programming
11.1 Taxonomy of distributed systems
11.2 The distribution model
11.3 Distribution of declarative data
11.4 Distribution of state
11.5 Network awareness
11.6 Common distributed programming patterns
11.7 Distribution protocols
11.8 Partial failure
11.9 Security
11.10 Building applications
11.11 Exercises
12. Constraint Programming
12.1 Propagate-and-search
12.2 Programming techniques
12.3 The constraint-based computation model
12.4 Defining and using computation spaces
12.5 Implementing the relational computation model
12.6 Exercises
III. SEMANTICS
13. Language Semantics
13.1 The general computation model
13.2 Declarative concurrency
13.3 Eight computation models
13.4 Semantics of common abstractions
13.5 Historical notes
13.6 Exercises
IV. APPENDICES
A. Mozart System Development Environment
A.1 Interactive interface
A.2 Command line interface
B. Basic Data Types
B.1 Numbers (integers, floatsand characters)
B.2 Literals (atoms and names)
B.3 Records and tuples
B.4 Chunks (limited records)
B.5 Lists
B.6 Strings
B.7 Virtual strings
C. Language Syntax
C.1 Interactive statements
C.2 Statements and expressions
C.3 Nonterminals for statements and expressions
C.4 Operators
C.5 Keywords
C.6 Lexical syntax
D. General Computation Model
D.1 Creative extension priciple
D.2 Kernel language
D.3 Concepts
D.4 Different forms of state
D.5 Other concepts
D.6 Layered language desing
References
Index
ASAHIネット(http://www.asahi-net.or.jp)のjouwa/salonからホットコーナー(http://www.asahi-net.or.jp/~ki4s-nkmr/ )に転載したものから。
---
ある人から頼まれて、たびたび紹介している教科書
http://www.amazon.co.jp/exec/obidos/ASIN/0262220695/showshotcorne-22/ref=nosim
Peter Van Roy and Seif Haridi著「Concepts, Techniques, and Models of
Computer Programming」
の目次だけ日本語にして渡すことになりました。うまく行くと日本語版が出る
かもしれません。こういういい教科書を日本人が書けてない以上、せめて日本
語版が出ないと、世界との差は広がるばかりですから。といって、コンピュー
タ系出版社は不況もあって、目先儲かることしかやりたがらない状態になって
ますから、どうなることやら。
いままでCTMCPと略してましたが、どうも海外のサイトをみているとCTMと略
すことが多いみたいなので、これからCTMにします。^^;
この本、大部なので目次も項目がいっぱいです。手で入力するのは面倒なの
で、amazon.co.jpやamzon.comに行ったらありません。\(^O^)/ 出版元の
MIT Pressに行ったら、かろうじて章のタイトルまではありました
http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=10142&mode=toc
です。
でも、節タイトルまでみないと、この本がどれほど幅広い話題を扱っていて、
意味論や宣言的なプログラミングに力を入れているか、関数型、命令型、オブ
ジェクト指向、論理型のプログラミング、さらには分散プログラミングや制約
プログラミングの概念、モデルやテクニックについて述べているかわからない
と思うので、節タイトルは手で本から入れました。スペルミスがあったら教え
てください。
手で入れるだけで、小一時間かかりました。\(^O^)/
目次からはすぐにはわかりませんが、Ozプログラミング言語のサブセットに
なるよう注意深く設計された核言語を、いろんなプログラミングモデルを表現
できるように徐々に拡張していくアプローチ、そしてそれらのコードは、
Mozartプログラミングシステムで実行可能なので、実際に動かしながら学べる
という点も、本書の美点です。
長くなりますが、日本語の目次と英語の目次を以下に示します。
おかしなところ、もっといい訳があれば教えてください。
個人的に悩んだのは、
2.2 The single-assignment store
7.3 Classes as incremental data abstractions
11.5 Network awareness
かな。
「The single-assignment store」は、「単一代入記憶」としましたが、こ
れは、命令型プログラミング言語でいう変数とは違うという話なんです。Ozは、
関数型でも宣言的に書ける言語なので、一度束縛した変数は変更不可です。い
わゆる数学的な変数ですね。この概念を使って、並行プログラミングや分散プ
ログラミングで使う、自動的に同期をとってくれるデータフロー変数、あるい
は論理プログラミングで使う論理変数の意味がクリアになっているわけです。
「Classes as incremental data abstractions」は、「増分的データ抽象と
してのクラス」としましたが、これは、クラスは、継承によって増分というか
差分を徐々(インクリメンタル)に追加することで、データの抽象化ができると
いう話です。
「Network awareness」は、「ネットワーク感知性」としましたが、なんか
しっくり来ない。これは、ネットワーク透過なプログラミングをできるように
するために、サブシステムがネットワークの存在を知っていてちゃんと下働き
をやってくれるので、プログラマは簡単に分散プログラミングができるという
話なんですが。
日本語の目次
まえがき
例題プログラムを実行するには
1. プログラミングのコンセプト入門
1.1 計算機
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 歴史に関する注釈
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 層化された言語設計
参考文献
索引
英語の目次
Preface
Running the Example Programs
1. Introduction to Programming Concepts
1.1 A calculator
1.2 Variables
1.3 Functions
1.4 Lists
1.5 Functions over lists
1.6 Correctness
1.7 Complexity
1.8 Lazy evaluation
1.9 Higher-order programming
1.10 Concurrency
1.11 Dataflow
1.12 Explicit state
1.13 Objects
1.14 Classes
1.15 Nondeterminism and time
1.16 Atomicity
1.17 Where do we go from here?
1.18 Exercises
I. GENERAL COMPUTATION MODELS
2. Declarative Computation Model
2.1 Defining practical programming language
2.2 The single-assignment store
2.3 Kernel language
2.4 Kernel language semantics
2.5 Memory management
2.6 From kernel language to practical language
2.7 Excepctions
2.8 Advanced topics
2.9 Exercises
3. Declarative Programming Techniques
3.1 What is declarativeness?
3.2 Iterative computation
3.3 Recursive computation
3.4 Programming with recursion
3.5 Time and spcae efficiency
3.6 Higher-order programming
3.7 Abstract data types
3.8 Nondeclarative needs
3.9 Programming design in the small
3.10 Exercises
4. Declarative Concurrency
4.1 The data-driven concurrent model
4.2 Basic thread programming techniques
4.3 Streams
4.4 Using the declarative concurrent model directly
4.5 Lazy execution
4.6 Soft real-time programming
4.7 The Haskell language
4.8 Limitations and extensions of declarative programming
4.9 Advanced topics
4.10 Historical notes
4.11 Exercises
5. Message-Passing Concurrency
5.1 The message-passing concurrent model
5.2 Port objects
5.3 Simple message protocols
5.4 Program desing for concurrency
5.5 Lift control system
5.6 Using message-passing model directly
5.7 The Erlang language
5.8 Advanced topic
5.9 Exercises
6. Explicit State
6.1 What is state?
6.2 State and system building
6.3 The declarative model with explicit state
6.4 Data abstraction
6.5 Stateful collections
6.6 Reasoning with state
6.7 Program desing int the large
6.8 Case studies
6.9 Advanced topic
6.10 Exercises
7. Object-Oriented Programming
7.1 Inheritance
7.2 Classes as complete data abstrations
7.3 Classes as incremental data abstractions
7.4 Programming with inheritance
7.5 Relation to other computation models
7.6 Implementing the object system
7.7 The Java language (sequential part)
7.8 Active objects
7.9 Exercises
8. Shared-State Concurrency
8.1 The shared-state concurrent model
8.2 Programming with concurrency
8.3 Locks
8.4 Monitors
8.5 Transactions
8.6 The Java language (concurrent part)
8.7 Exercises
9. Relational Programming
9.1 The relational computation model
9.2 Further examples
9.3 Relation to logic programming
9.4 Natural language parsing
9.5 A grammar interpreter
9.6 Databases
9.7 The Prolog language
9.8 Exercises
II. SPECIALIZED COMPUTATION MODELS
10. Graphical User Interface Programming
10.1 The declarative/procedural approach
10.2 Using the declarative/procedural approach
10.3 The Prototyper interactive learning tool
10.4 Case studies
10.5 Implementing the GUI tool
10.6 Exercises
11. Distributed Programming
11.1 Taxonomy of distributed systems
11.2 The distribution model
11.3 Distribution of declarative data
11.4 Distribution of state
11.5 Network awareness
11.6 Common distributed programming patterns
11.7 Distribution protocols
11.8 Partial failure
11.9 Security
11.10 Building applications
11.11 Exercises
12. Constraint Programming
12.1 Propagate-and-search
12.2 Programming techniques
12.3 The constraint-based computation model
12.4 Defining and using computation spaces
12.5 Implementing the relational computation model
12.6 Exercises
III. SEMANTICS
13. Language Semantics
13.1 The general computation model
13.2 Declarative concurrency
13.3 Eight computation models
13.4 Semantics of common abstractions
13.5 Historical notes
13.6 Exercises
IV. APPENDICES
A. Mozart System Development Environment
A.1 Interactive interface
A.2 Command line interface
B. Basic Data Types
B.1 Numbers (integers, floatsand characters)
B.2 Literals (atoms and names)
B.3 Records and tuples
B.4 Chunks (limited records)
B.5 Lists
B.6 Strings
B.7 Virtual strings
C. Language Syntax
C.1 Interactive statements
C.2 Statements and expressions
C.3 Nonterminals for statements and expressions
C.4 Operators
C.5 Keywords
C.6 Lexical syntax
D. General Computation Model
D.1 Creative extension priciple
D.2 Kernel language
D.3 Concepts
D.4 Different forms of state
D.5 Other concepts
D.6 Layered language desing
References
Index
コメント
_ kimura ― 2006年12月16日 11時06分03秒
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。
※投稿には管理者が設定した質問に答える必要があります。
上記の本早速アマゾンで頼みました。