フレームとブロック
- フレームはオブジェクト(self((メタクラス、クラス/モジュール、インスタンス 'すべてがオブジェクト'))と定義のある場所((self.classとは限らない))cbase)をもつ
- ブロックは関数本体(body)とローカル変数(scope)と定義の属す場所*1(klass)をもつ
- フレームが作られると、最初のブロックがフレームの上に積まれる。また、ブロックの上にさらに別のブロックが積まれることもある(ブロック付きメソッド呼び出し、eval)。
- フレームの種類
- メソッド
- トップレベル
- クラス/モジュール定義
- BEGIN/END
トップレベルのフレーム
selfはObjectのインスタンス(main)?
p self # main p self.class # Object p self.class.class # Class
cbaseはObject?
class Object private この辺? end
*1:self.class