第3章レビュー
Ruby1.8とRuby1.9、javaのバイトコードへのコンパイル方法
Ruby1.8やRuby1.9、javaのコンパイルの違いを比較した。Ruby1.9はインタープリタだが、バイトコードを生成するので今までのRuby1.8とは違いがある。
- java
- ソースプログラム→コンパイルしてバイトコード→VM→実行
- Ruby1.8まで
- ソースプログラム→AST(抽象構文木)→実行
- Ruby1.9
- ソースプログラム→AST(抽象構文木)→バイトコード→VM→実行
上でjavaとRubyのコンパイルの話を話をしていたこの時に話に出てきたJITコンパイルのことを調べてみた。
つまり、JITコンパイルは実行速度を速くしてくれる素晴らしいコンパイル方式なんだな。うん。
あと、リトルエンディアンやビッグエンディアンの時にLSBとMSBも調べたので下記にメモ。因みに、リトルエンディアンやビッグエンディアンは「ガリバー旅行記の卵の割り方」から命名されたそうな。卵の先の尖ったほうから割るのがリトルエンディアンで、逆方向の先が広いほうがビッグエンディアンだそうです。私の卵の割り方は横から割るので、ミドルエンディアンか?いやエンディアン(端)じゃないからノンエンディアンかなぁw
- LSB
- Left Side Back 2進数法において最小のビットを表す位置
- MSB
- Most Significant Bit 2進数法において最大のビットを表す位置