Ruby処理系の実装 12/17 進捗

まずはじめに、 rubyC言語(C11)で実装することに決めた。 それで、そのままだとコードを写すのみになってしまいそうなのでC11に沿った記法でC11の最新の機能をなるべくつかいformatterなども使おうと考えている。 また、 ビット演算などのコンピュータの基礎を勉強しようと思う。

今日までで、 Rubyのオブジェクトがrubyでは構造体で表現されており、VALUE型がunsigned long型のtypedefで、オブジェクトを扱う際は構造体のアドレスを任意の構造体オブジェクトへのポインタにキャストして使っていることがわかった。

そして、 基本的に大体の構造体オブジェクトはstruct RBasicをメンバーに入れており、 struct RBasicはunsigned long型の多目的フラグのflagsとそのオブジェクトのクラスを表すVALUE klassがメンバとなっている。

おそらく、klassはstruct RClassのアドレスを保持している。