関西Ruby会議02に行きます

11月 6th, 2009 admin

関西Ruby会議02(kansairubykaigi02)のGeek day(11月7日)に参加します。

単純にRuby会議に行きたいという理由と、名古屋Ruby会議実行委員として他の地域Ruby会議さんがどうなっているのか勉強させてもらいたいという理由での参加です。

翌日が岐阜でマラソンに参加なので、懇親会ではあまりお酒が飲めないのが残念ですが、
名古屋Ruby会議のTシャツを着ている人間を見つけたら僕(toyoshi)か名古屋名物のsawada氏だと思いますので、宜しくお願い致します。

第11回 RHG読書会@CSNagoya

11月 2nd, 2009 admin

1721b

今回は第12章構文木の構築をやりました。

メモ

・Rubyプログラムは構文木に変換される
・構文木のノードはNODE型で表される
・ノードはRubyオブジェクトなのでガーベージコレクタが生成・解放を行う
・ノードにはファイル名、行番号が保持されている
・葉・・・リテラル、変数参照など
・枝・・・ifなど
・elsifとelse ifは構文木になると違いはない
・優先順位の違いも構造がその情報を含んでいるのでandと&&なども同じになる
・「32-(10+8)」とあるが「32-(11+8)」(正誤表より)
・意味解析・・・変数を定義前に使っていないかなどのエラーはここで補足
・value_expr()で末尾再帰の除去のテクニックが使われている、こっちのほうが速いそうだ
・ローカル変数が定義されるのは「現れたとき」
・ローカル変数、ブロックローカル変数はst_tableで管理されていない(スコープ管理のため?)
・しかもブロックローカル変数はローカル変数と実装が違う(なぜ?)
・図12.12はlequeさんのブログで補足して下さった(bbとeの間にもヘッダが必要じゃねの?という件。結果=>必要)

まとめ

・ローカル変数が「現れたとき」に定義されるというのが気持ち悪いなと思った。「初期化されたら」のほうがわかりやすい気がするが
・構文木っていうのが具体的にイメージできた。本などではツリーの絵が描いてあるが、それより横向きのフローチャートのような図で書いたらすんなり頭に入った。枝とか葉とかは名前としてはいいが、解説に使われるとわかりにくい気がする。
・次回は第3部 第13章 評価器から
・次から『Rubyソースコード完全解説』正誤表はきちんと見よう
・RGHが終ったらなにをやりたいか
-なんか成果物が残るものがいいんじゃないか
-Prolog => 脈絡が無さ過ぎるらしい
-Coq入門と証明駆動開発 => フランス語の文献を読む必要があるらしい
-データベースを作る => もうすぐ俺俺DB開発のブームが来る
-ふつうのコンパイラ読書会 => CSNagoyaの正しい流れ