SICPを読み始めました

前回、ひとりRails読書会を始めましたが、その過程でどうしても「イメージできない部分」がありました。インタプリタの解釈の箇所です。具体的には、

def greet(person)
  puts "hello,#{person.to_s}"
end

と関数を定義した際に「テキストで書かれたインタプリタへの命令列」から「実機マシンのバイナリコード列」へと変換されるわけですが、そこがイマイチ実感がわかない訳です。そこでSICPです。この本には、幸いなことに、SICP本文及び内部のソースコードWebで無料公開されていますので、これを利用することにします。

他にも、この本を読み始めた細々とした理由はいくつかあります:

  1. 別の関数型言語の習得が容易になるかもしれない。
  2. CS専攻なのにインタプリタをスクラッチから実装したことはないのはどうなのよ><
  3. 洋書を読み切ることで、これから読む本に対する抵抗をなくす。
  4. 学生のうちに読んでおいた方が良いらしい。

ひげぽん OSとか作っちゃうかMona- 2006/10/27
結果として本当に読んで良かった、かけた時間に見合うだけのものは得られました。

もし大学生時代の自分が目の前にいたら、「だまされたと思って読め!」っていうでしょうね。


なお、SICPを読む際はhigeponさんルールに乗っ取ることにします。つまり、

関数型言語の勉強にSICPを読もう - (2) SICPを読む上で自分に課したルール

  • 挫折禁止
    • 挫折するのが一番駄目。人に聞いても良い。毎日1ページずつでも良いとにかく進む。
  • 出来るだけ練習問題を解く
    • 受験生ではないけど手と頭を動かさないと覚えなさそう。
  • 練習問題が難しい場合は答えを見ても良い
    • 一人では無理な場合もある。答えを見て理解できたならばそれで良し。
  • 勉強の過程を文章に残す
    • 自分用の記録として、そして後学者のために。
  • 数学の難しさに起因するものはスキップしても良い
    • 理解したい部分は数学の部分ではないので。
  • 流し読みしない
    • 分かった気になったけど何も頭に残らないのは駄目。

にのっとり読みます。というか既に読み始めています。ちょっとずつなら自分にもなんとかなるかなーと思うので、チマチマとやっていきます。