コンテンツへスキップ
ものがたり
戻る

linear IR

http://www.thinkit.co.jp/cert/article/0709/26/2.htm

Ruby処理系はまずRubyプログラムを構文解析という操作により抽象構文木(AST)へ変換します。Ruby 1.8以前では、このASTを直接たどりながら実行していました。仮想マシンでは、さらにASTを独自の命令セットにコンパイルして実行します。

「木構造の構文木をたどる」よりも、「線形の命令列をたどる」ほうが高速なので、速くなるわけです。また、線形の命令列だと命令を入れ替えるなどの高速化ができるので、もっと速くなる可能性が広がります。

へぇ、YARVはうちで言うところのlinear ILみたいなものを既に実装できているんだ。さすが。てか、linear ILってどうなってんだろ。


この記事を共有:

前の記事
2007-10-02
次の記事
IMT memory usage