Structure and Interpretation of Computer Programs (SICP) を読んだ

Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)

Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)

SICPをようやく読み終えた。ただし、演習はほとんど割愛して、5章の途中以降、レジスタマシンを実装するところもすっ飛ばした。

内容は、Scheme言語を題材にして、プログラムとプログラム処理系の仕組みを学ぶというもの。各章の中身は次のとおり。

  1. Building Abstractions with Procedures
    • 名前や手続きなどからなる式で値を表す
    • 項置換で式を評価する
  2. Building Abstractions with Data
    • consセルを組み合わせて複雑なデータを表す
  3. Modularity, Objects, and State
    • 変数の書き換えによって可変な状態をもつオブジェクトを表す
  4. Metalinguistic Abstraction
  5. Computing with Register Machines

ある程度分かっている人が、土台固めとして読むにはよいと思う。ただ、本も記述も分厚いので、本気で読むにはかなりの根性がいる。

私にとっては、プログラミング言語まわりの知識を系統立てるために役立った。数年来言語処理系を作っているのだけど、4章あたりを早くに読んでいれば、回り道をせずに済んだのになあと思った。