2008年3月23日日曜日

SICP てきとー要約:Chapter 1 Building Abstractions with Procedures

英語読解能力がほぼ 0 な私が、はしょりながら SICP を読み解く第1弾。英語と Scheme とコンピュータを全て同時に学ぼうという無謀な挑戦。
(続くのか??)

http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-9.html

computational process は data と呼ばれる”もの”を program と呼ばれる規則に沿って処理する。魔法と同じように見えないし触れないけど、実際に銀行や工場で computational process は動作している。

program を勉強するのは魔法と違って安全だけど、bug と呼ばれる小さなミスが原因で飛行機やダムの破滅的な崩壊を招いたり、工場のロボットが自爆してしまう可能性だってある。

software 技術の master は意図的に動作するようにプログラムする能力があり、うまく構造化することで思いがけない問題が発生しても破滅的な事態にならず、その問題を修正することができるのだ。

Programming in Lisp

本書では、Lisp という programming language を使用する。Lisp は 2 番目に古い言語ながらその柔軟性によって最も近代的な program design を備えている。Lisp には方言が多くあるのだが、その中でも Scheme と呼ばれる方言を使用する。

Lisp は主要言語とは言えないかもしれない。しかし、Lisp は procedure と呼ばれる処理の記述を data としても扱える。これはとても重要な特徴で、受け身な data と活動的な process の境界を曖昧にする強力な技法である。この特徴によって Lisp は我々が design 技法を探し求めるのに最も使える言語の一つとなっている。しかも Lisp の programming はとても楽しいのだ!