YARV
YARV (Yet another Ruby VM)
Ruby 1.9.1にマージされている。
昔のRuby処理系の実装は単純な構文木をたどるインタプリタだから実行速度は遅かったらしい。この問題を解決するためにYARVが笹田耕一によって開発された。 YARVは下記から成る
RubyソースコードをYARV命令列に変換するコンパイラ
YARV命令列を実行する命令評価機
YARV以前のRubyの問題点
プログラムによるパーサ作成が難しい
パフォーマンスの問題
オブジェクト指向機能
ガーベジコレクタ(GC)
ブロックつきメソッド呼び出しとクロージャ
例外処理機能のオーバーヘッド
Ruby C API のサポートの問題?
命令列評価関数の再帰呼び出しは,とくに例外処理と絡む場合実現が困難
スレッドの実装方式による並列実行の問題
プリミティブ型がない言語仕様
静的解析が困難な言語仕様
YARVの仕様
要参照
VM
VM は 5 つの仮想的なレジスタによって制御される。
PC (Program Counter)
SP (Stack Pointer)
CFP (Control Frame Pointer)
LFP (Local Frame Pointer)
DFP (Dynamic Frame Pointer)
参考
関連