第3章レビュー

Ruby1.8とRuby1.9javaバイトコードへのコンパイル方法

Ruby1.8やRuby1.9javaコンパイルの違いを比較した。Ruby1.9インタープリタだが、バイトコードを生成するので今までのRuby1.8とは違いがある。

java
ソースプログラム→コンパイルしてバイトコード→VM→実行
Ruby1.8まで
ソースプログラム→AST(抽象構文木)→実行
Ruby1.9
ソースプログラム→AST(抽象構文木)→バイトコード→VM→実行


上でjavaRubyコンパイルの話を話をしていたこの時に話に出てきたJITコンパイルのことを調べてみた。

JITコンパイル
ソフトウェア実行時にコードのコンパイルを行い、実行速度を速くする方式。実行する時コンパイルを行うことでOSやCPUに依存しないソフトウェアを配布することができる。

つまり、JITコンパイルは実行速度を速くしてくれる素晴らしいコンパイル方式なんだな。うん。
あと、リトルエンディアンやビッグエンディアンの時にLSBとMSBも調べたので下記にメモ。因みに、リトルエンディアンやビッグエンディアンは「ガリバー旅行記の卵の割り方」から命名されたそうな。卵の先の尖ったほうから割るのがリトルエンディアンで、逆方向の先が広いほうがビッグエンディアンだそうです。私の卵の割り方は横から割るので、ミドルエンディアンか?いやエンディアン(端)じゃないからノンエンディアンかなぁw

LSB
Left Side Back 2進数法において最小のビットを表す位置
MSB
Most Significant Bit 2進数法において最大のビットを表す位置