計算機プログラムの構造と解釈

計算機プログラムの構造と解釈


計算機プログラムの構造と解釈 計算機プログラムの構造と解釈
ピアソンエデュケーション ピアソンエデュケーション Gerald Jay Sussman
¥ 4,830


   本書を一言で表現すれば、これ1冊でコンピュータのすべてがわかる本である。最近の自然科学や工学では、簡単な規則から予測できない現象を研究する複雑系がはやっている。本書は、そのような思想とはある意味で対立する哲学で書かれている。

   いかなる大きなプログラムでも、それは人間の手によって書かれた小さなプログラムから成り立っており、それらの各部分をよく理解しておけば理解可能であるということだ。逆にいえば、部品となるプログラムを理解しさえすれば、それらを組み合わせて正しく動作する大きなプログラムを作れるわけだ。物理学でいえば素粒子論のような還元主義的な考えであり、ある意味ではオーソドックスな工学の考え方である。

   本書は、MITで長い間行われている講義をもとにした教科書である。著者のジェラルド・ジェイ・サスマンは本書でも使われているSchemeの設計者(現在サン・マイクロシステムズにいるガイ・L.スティール・ジュニアと共に設計・実装を行った)であり、ハロルド・エイブルソンはLogoを使った教育的な著書でも有名な著名である。いずれも人工知能研究所に所属してる純粋のハッカーである。彼らの文書を洗練したり読みやすくするのに力を貸したのが、ジェラルド・ジェイ・サスマンの妻のジュリー・サスマンである。

   本書では、プログラミング言語の制限に依存することなく、プログラミングというのはどういう行為であり、プログラムをどのように構成していけばいいかということの本質を描き出している。Scheme言語についての予備知識は必要でなく、簡単な例を実行していくことで自然に学ぶことができる。基本的な数値計算から説明が始まり、抽象化の技法と構造化プログラミング、ラムダ計算と関数型プログラミング、オブジェクト指向プログラミング、人工知能や論理プログラミングなど、およそ必要なソフトウェア工学の基本が明確に解説されており、おしまいにはCPUの設計までを扱っている。このよう内容が次のような目次立てで扱われている。

  1. Building Abstractions with Procedures
  2. Building Abstractions with Data
  3. Modularity, Objects, and State
  4. Metalinguistic Abstraction
  5. Computing with Register Machines

   本書で使われているのは、関数型言語Lispの方言であるSchemeである。Schemeは言語仕様が小さくて効率的で、インタープリターであるのでプログラムをすぐに実行できる、必要にして十分な機能を持っている理想的で洗練されたプログラミング言語だ。

   Schemeは関数型言語の利点として、手続きもデータ区別せずに扱うことができる。そのため、それらを抽象的なオブジェクトとして、あるいは大きなプログラムの部品として組み合わせていくことが容易である。そのための本書のような教科書にはうってつけのプログラミング言語であるわけだ。

   日本の教育は、詰め込み式で記憶力に重点が置かれているが、本書のような普遍的な考え方を学ぶチャンスが少ない。日本の情報科学系の大学や専門学校では、プログラミング言語のユーザーしか育てないようなことを行っているところも多いと聞く。ぜひ本書を基礎教育のなかで利用すべきである。本書は単なるコンピュータの教科書ではない、自然科学・工学を学ぶすべての学生が読むべき教養書といえる。

   なお、翻訳は、日本のハッカーとして著名な東京大学名誉教授の和田英一によって訳されている『計算機プログラムの構造と解釈』である。(村藤一雅)


Instructor's Manual to Accompany Structure & Interpretation of Computer Programs
プログラミングGauche
The Little Schemer
On Lisp―Advanced Techniques for Common Lisp
プログラミング言語SCHEME

■内容最高。翻訳最低。 評価1 日付2008-07-13
内容は文句なしに最高です。
とにかく考えながら読むのが楽しい本です。
PCにSchemeの処理系を入れてポチポチやりながらやってもいいと思いますし、
紙と鉛筆で、手でやってみても面白いと思います。

ですが、翻訳が最低です。
訳が良くない本とかはありますが、これは問題外です。
こんな翻訳がまかり通っているとは。
誰か、別の人に訳して欲しいところです。
本当は良い本のはずなのに、翻訳の悪さが一気に価値を下げています。

■食わず嫌いでした。 評価5 日付2008-05-01
LispもSchemeも食わず嫌いでした。
本書のように、コンピュータ、プログラムの仕組みを親切に教えてくれるものをもっと早く知っていればそうならずに済んだかもしれないと悔やんでいます。
計算機、プログラムの構造で、何が美しいか、何が美しくないかの評価ができるようになりたいと思い読んでいます。
■プログラマにとって必読の本です 評価5 日付2007-12-10
「これ1冊でコンピュータのすべてがわかる本」ではありませんが、プログラマにとって必読の本です。この本で言う解釈(Interpretation)を理解すればプログラマにとって新たな道が開けるでしょう。scheme の言語解説に始まり、scheme 上で新たな言語を生成し、インタプリターを生成し、最終的にはコンパイラまで作ります。gcc コンパイラが lisp を採用している(?)意味がわかります。
この類いの本は他にありません。
日本語をよく読めば原文の意味もわかります。訳文(の評価)に惑わされずに上を目指すプログラマなら是非読むことをお勧めします。
■この第2版の日本語訳は大変よくない 評価1 日付2005-11-30
まず、原著は(とても)よい本に違いないということには異議無し。
日本語訳について:この本(第2版、和田訳)は、他の多くの方が言っていますように、とてもひどいです。前書き、本文の最初の十数頁を真剣に読んでみてください。ストレスがたまります。多くの箇所で「英語ではなんてかいてあるんだろう?」と考えこむことになると思います。
なお、原著の第1版の日本語訳が存在します:元吉文男訳、マグロウヒル(1989)。こちらは、私は見たことがないのですが、もしかしたら訳文は問題ない(良い)のかもしれません(信頼できる人が推薦していましたから)。残念ながら出版社が倒産してしまい、今は古本以外入手不可能ですが。
■洋書で読みましょう 評価3 日付2005-06-20
 講義の教科書として疑いも無く購入しましたが、せめて前書きだけでも読んでから買うべきだったと反省しています。他の方のレビューでも同様のコメントが書いてありましたが、序文の段階で既に日本語が理解出来ない部分が多数……一昔前の安物の翻訳ソフトに任せたのではないかと疑ってしまうほどの訳文の独創性にはもう天晴れです。それでも邦訳版を読むのだと言う方は、取り敢えず買う前に序文だけでも読んでから判断しましょう。
 調べてみると、MITでWEBにも公開しているようですので、そちらを参照するのも良いかも知れませんが、使い勝手が悪いので個人的には洋書で購入するのが一番かと思います。邦訳は脅威的ですが、内容自体は高級な内容を扱っており、Schemeを中心に計算機によるプログラムの醍醐味を十分収録してあります。と言っても、自分自身全て細かく読んだ訳ではないのですが、教科書的に最初から徐々に読み進めていくよりは、自分の参照したい箇所を見つけてざっと概観を掴んだ後は辞書的に、あるいはプログラムのテクニックを磨く為に参照するのがお勧めです。実際相当分厚い本で、更に収録内容も非常に多いです。それでも私は最初から全て読むのだと言うのであれば、それこそ洋書版を読むことをお勧めします。
⇒ もっと詳しく調べる
入門書
パソコン入門書
Macintosh入門書
アプリケーション入門書
データベース入門書
インターネット入門書
ホームページ入門書
プログラミング入門書
ネットワーク入門書
Windows入門書
コンピュータ用語集・参考書
コンピュータサイエンス
情報学・情報科学全般
アルゴリズム
人工知能
暗号理論
ロボット工学
計算機
システム管理・監査
データベース処理
セキュリティー管理
ソフトウェア開発
ハードウェア・周辺機器
パソコン
Macintosh
モバイル・iモード
デジタルカメラ
CD-R・DVD-R
周辺機器
OS
Windows入門書
Windows98
WindowsXP
Windows2000
Linux
Unix
MS-DOS
MacOS
FreeBSD
ネットワーク
ネットワーク入門書
TCP・IP
Ethernet
LAN
Routers・ルータ
ネットワーク参考図書
インターネット・Web開発
インターネット入門書
ブラウザ
e-ビジネス
通信・メール
Web開発
セキュリティー管理
ネット社会
IT・e-コマース
ビジネスとIT
ネットビジネス
情報・コンピュータ産業
情報社会
e-コマース
プログラミング
プログラミング入門書
Basic言語
Visual Basic
C言語
C++言語
Delphi
JAVA言語
LISP
Perl
Ruby
アプリケーション
ワープロソフト
一太郎
Microsoft Word
表計算ソフト
Microsoft Excel
Lotus 1-2-3
プレゼンテーションソフト
PowerPoint
データベース
データベース一般・入門書
FileMaker
dBASE
DB2
Microsoft Access
Oracle
SQL総合
SQL入門書
Microsoft SQL Server
PostgreSQL
MySQL
ブラウザ
Internet Explorer
Netscape
通信・メール
Microsoft Outlook
Netscape Communicator
グラフィックス
Photoshop
Illustrator
Dreamweaver
Flash
Fireworks
Shade
LightWave
AutoCAD
3D STUDIO MAX
GoLive
Photoshop Elements
DTP
DTP全般
QuarkXpress
PageMaker
InDesign
LATEX
DTM
ソフトウェア開発
デザイン・グラフィックス
Webデザイン
グラフィックス
DTPソフト
3D グラフィックス
コンピュータアート
Adobe
Macromedia
デジタルエンターテイメント
ロボット
音楽
ゲーム
コンピュータ・情報処理・各種試験対策
コンピュータ・情報処理一般
システムアナリスト
プロジェクトマネージャ
アプリケーションエンジニア
ソフトウェア開発技術者
テクニカルエンジニア(ネットワーク)
テクニカルエンジニア(データベース)
テクニカルエンジニア(システム管理)
テクニカルエンジニア(エンベデッドシステム)
情報セキュリティアドミニストレータ
上級システムアドミニストレータ
初級システムアドミニストレータ
システム監査
基本情報技術者
Microsoft Office Specialist
Oracle Master
インターネット検定
CAD利用技術者
白書・用語辞典・参考書
商品 検索リンク
本・書籍
音楽CD
DVD・ビデオ
ゲーム
パソコン・家電
ソフトウェア
家庭用品・キッチン用品
おもちゃ・ホビー
英語学習の教材
パソコン本
ゲーム攻略本
ビジネス・経済の本
ベストセラー検索リンク
おすすめ品
English