フレームとブロック

  • フレームはオブジェクト(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