SICP : 書評

Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)
昨年の12月から読み始めたSICPですが、ぼちぼちと読みながら、昨日やっと3章を読み終わりました。
1章は、短い章で、手続きの抽象化についての説明で、簡単な手続き、計算量、高階関数を説明しています。
2章は、データの抽象化についての説明で、リストから始まり、クロージャ性、シンボル、タグ付き型、データ指向プログラミング、型システムについての説明があります。
3章は、副作用と時間に関する説明で、代入、オブジェクト指向、並列プログラミング、遅延ストリームについての説明があります。
そして、まだ読んでいませんが、4章はプログラミング言語、5章は最下層レイヤー(CPUやメモリなど)についての説明になるようです。
どれも解説は非常にわかりやすいです。内容は、それぞれ入門レベルにとどめて、基礎的なトピックを網羅するように構成されています。全体を通して、ソフトウェアの本質的な複雑さにどのように立ち向かうべきか、というテーマが一貫しています。
教科書として非常に良書だと思います。でも、ときどき物足りなくなることもあります。それは、おそらく、この本を読むことで、さらにその先の視界が開けるからではないかと思います。