ひとり勉強会

ひとり楽しく勉強会

データ構造・命令列

最終的に生成される命令列は、YARVCore::InstructionSequenceクラスのオブジェクトという形で返されます。このクラスは、C言語レベルではyarv_iseq_structという構造体です。

struct yarv_iseq_struct {
    /* instruction sequence type */
    VALUE type;

    VALUE self;
    VALUE name;   /* String: iseq name */
    VALUE *iseq;  /* iseq */
    ...

このオブジェクトの中身についてはまだ把握できてないので今日はスキップという方向で(^^;)。実際に使ってるコードを見つつ理解してきたいと思います。あ、本当に「生の」YARVマシン語の列は、iseq変数にVALUE型の配列として格納されるようです。VALUERHG第2章によるとポインタが入るサイズの整数型です。32bitマシンなら単に32bitのunsinged intと思っとけばよさげです。