2006/09/09に書いたものだから、もう10日経ってますが。
ASAHIネット(
[URL]のjouwa/salonからホットコーナー(
[URL] )に転載したものから。
---
ある人から頼まれて、たびたび紹介している教科書
[URL]
Peter Van Roy and Seif Haridi著「Concepts, Techniques, and Models of
Computer Programming」
の目次だけ日本語にして渡すことになりました。うまく行くと日本語版が出る
かもしれません。こういういい教科書を日本人が書けてない以上、せめて日本
語版が出ないと、世界との差は広がるばかりですから。といって、コンピュー
タ系出版社は不況もあって、目先儲かることしかやりたがらない状態になって
ますから、どうなることやら。
いままでCTMCPと略してましたが、どうも海外のサイトをみているとCTMと略
すことが多いみたいなので、これからCTMにします。^^;
この本、大部なので目次も項目がいっぱいです。手で入力するのは面倒なの
で、amazon.co.jpやamzon.comに行ったらありません。\(^O^)/ 出版元の
MIT Pressに行ったら、かろうじて章のタイトルまではありました
[URL]
です。
でも、節タイトルまでみないと、この本がどれほど幅広い話題を扱っていて、
意味論や宣言的なプログラミングに力を入れているか、関数型、命令型、オブ
ジェクト指向、論理型のプログラミング、さらには分散プログラミングや制約
プログラミングの概念、モデルやテクニックについて述べているかわからない
と思うので、節タイトルは手で本から入れました。スペルミスがあったら教え
てください。
手で入れるだけで、小一時間かかりました。\(^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 計算機
セコメントをする