Rubyソースコード完全解説

青木峰郎

RHGと呼ばれる本である。
環論で頭が疲れたので、Rubyの本(と言っていいかどうか)に行くことにした。

そろそろRuby-1.8.0が固まりそうなので、このタイミングで読んでおかなけれ
ば、という気持もある。

この本は、11次元とか、Noether環が出て来ない分簡単だ。とか言ったら怒ら
れるかバチが当たるんだろうな。でもまあ、1ヶ月かかって、40ページしか読
めなかったのに比べれば、3日で100ページ読めるってのは、やっぱりね。

お、しかし、次の100ページには結構時間かかった。この調子だと、やっぱり
一ヶ月か。

結局ほぼ一ヶ月でした。

なんというか、この本は地味に読んで地味にわかる、という感じで、楽しいの
だが、自分の手が動かせないのが苦しい。(目の前にパソコンとソースがあれ
ばいろいろトライアンドエラーの楽しみもありましょうが、私のメインの読
書タイムである、通勤電車の中や、歯医者の待合室では読むだけになってしま
うわけでして)。

「実用Perlプログラミング」を読んだとき、Perlの実装からくる裏技みたいな
のを見た気がした(型グロブとか)。
Rubyには「ちょっと変だけど実装上そうなっているから、これが定跡」的な
(バッド)ノウハウはあまりないように感じる。
しかし、それは、巧妙に中身を見せてないからこそなのだなあ。そして、それ
で速度とか犠牲になってる部分もあるんだなあ、とか思った。

とりあえず、4章まで読了。

class/moduleの生成は面倒だった。
classを作ると、特異classが横にできるとか、特異メソッドを追加すると特異
classが間にはさまるとか、おもしろい。

5章読了

なるほど、2002/10/02ごろに、gc_sweepが変ってheaps_limits[i]==0なら
free(heaps[i])するようになっている。

11章

本書最難関、と書いてあるけど、個人的には、14章の方が難しかった、という
のは真面目にコードを追ってないからか。たしかに、スキャナ、パーザ、状態、
と論点が発散してしまうので追うのは難しいんだけど。著者が難しいのをわかっ
てて噛み砕いてくれるので。でも、最後の方は、コードを追うより文章を追う
方が主体だった気もする。

14章

話題があれこれ変わるもので、なんの話をしているのかわからなくなる。これ
までに定義してきた用語がどんどん出てくるし、この部分は次の章に、まわさ
れてしまうし、かなり行きつ戻りつ読むこととなった。

16章とか17章
もはや、まともにコードが追えない。スタックの退避と復帰をダーっととばす
と、ありゃ、肝心な所も飛ばしたり。ローカル変数やらブロック変数が今どこ
でどうしているのやら、雰囲気の世界になりつつある

19章

地の文は読んだ。私は単純にも、環状になったスレッドのリンクリストをぐるっ
と辿っているだけだと思ってた。
が、状況に応じて次に切り換えるスレッドを考えているんだ。切り換えるべき
スレッドを探して廻るのね。さらに言えば、終りかけのスレッドは終らせると
か。うーむ。すごい。が、たしかに激重そう。

さて、これで、昨年末に買った3冊

「ヤング図形のはなし」
「熱力学  現代的な視点から」
「Rubyソースコード完全解説」
を読みおわったことになる。半年かかった(途中に別の本を読みながらだった
からだが)。

そして、この調子で行くと、年間20冊は達成できない。半年かけて10冊に足り
てない。「環と体」でつまづいたのが痛かったと言うべきか。Haskellにはまっ
ていたのも痛かったか。
$Date: 2003/07/04 13:16:26 $ (GMT)