『計算機プログラムの構造と解釈』 ピアソンエデュケーション price : ¥4,830 release : Now On Sale
【商品詳細】
本書を一言で表現すれば、これ1冊でコンピュータのすべてがわかる本である。最近の自然科学や工学では、簡単な規則から予測できない現象を研究する複雑系がはやっている。本書は、そのような思想とはある意味で対立する哲学で書かれている。 いかなる大きなプログラムでも、それは人間の手によって書かれた小さなプログラムから成り立っており、それらの各部分をよく理解しておけば理解可能であるということだ。逆にいえば、部品となるプログラムを理解しさえすれば、それらを組み合わせて正しく動作する大きなプログラムを作れるわけだ。物理学でいえば素粒子論のような還元主義的な考えであり、ある意味ではオーソドックスな工学の考え方である。 本書は、MITで長い間行われている講義をもとにした教科書である。著者のジェラルド・ジェイ・サスマンは本書でも使われているSchemeの設計者(現在サン・マイクロシステムズにいるガイ・L.スティール・ジュニアと共に設計・実装を行った)であり、ハロルド・エイブルソンはLogoを使った教育的な著書でも有名な著名である。いずれも人工知能研究所に所属してる純粋のハッカーである。彼らの文書を洗練したり読みやすくするのに力を貸したのが、ジェラルド・ジェイ・サスマンの妻のジュリー・サスマンである。 本書では、プログラミング言語の制限に依存することなく、プログラミングというのはどういう行為であり、プログラムをどのように構成していけばいいかということの本質を描き出している。Scheme言語についての予備知識は必要でなく、簡単な例を実行していくことで自然に学ぶことができる。基本的な数値計算から説明が始まり、抽象化の技法と構造化プログラミング、ラムダ計算と関数型プログラミング、オブジェクト指向プログラミング、人工知能や論理プログラミングなど、およそ必要なソフトウェア工学の基本が明確に解説されており、おしまいにはCPUの設計までを扱っている。このよう内容が次のような目次立てで扱われている。 Building Abstractions with Procedures Building Abstractions with Data Modularity, Objects, and State Metalinguistic Abstraction Computing with Register Machines 本書で使われているのは、関数型言語Lispの方言であるSchemeである。Schemeは言語仕様が小さくて効率的で、インタープリターであるのでプログラムをすぐに実行できる、必要にして十分な機能を持っている理想的で洗練されたプログラミング言語だ。 Schemeは関数型言語の利点として、手続きもデータ区別せずに扱うことができる。そのため、それらを抽象的なオブジェクトとして、あるいは大きなプログラムの部品として組み合わせていくことが容易である。そのための本書のような教科書にはうってつけのプログラミング言語であるわけだ。 日本の教育は、詰め込み式で記憶力に重点が置かれているが、本書のような普遍的な考え方を学ぶチャンスが少ない。日本の情報科学系の大学や専門学校では、プログラミング言語のユーザーしか育てないようなことを行っているところも多いと聞く。ぜひ本書を基礎教育のなかで利用すべきである。本書は単なるコンピュータの教科書ではない、自然科学・工学を学ぶすべての学生が読むべき教養書といえる。 なお、翻訳は、日本のハッカーとして著名な東京大学名誉教授の和田英一によって訳されている『計算機プログラムの構造と解釈』である。(村藤一雅)
但し、この本の答えが本当に正しいかどうか(別解はないか?)、御自身でもよく検討する習慣を身につけると良いでしょう。例えば第2問「猟師が南に10km、西に10km、北に10km歩いたら元の出発地点に戻った。これはあり得るか?」という古典的パズルがありますが、この本の答えは実は十分ではありません。(その答えではマイクロソフトの面接は「不合格」となるそうです) そういう訳で、本の答えを見て一安心するのでなく、「別の解は本当にないか?」と考える習慣が付くと本当に独創的になれそうですね。(^-^) Good Luck !