YARV(Yet Another
Ruby VM)は、プログラミング言語
Rubyの処理系の一つで、笹田耕一氏によって開発されました。このプロジェクトは、
Rubyインタプリタの高速化を主眼としており、世界最高速の
Ruby処理系を目指して開発が進められました。
YARVの開発は、
情報処理推進機構(IPA)の2004年度未踏ソフトウェア創造事業に採択されたことを契機に本格化しました。従来の
Ruby処理系(Matz's
Ruby Interpreter, MRI)を全面的に書き換えるのではなく、既存の処理系に対する拡張
ライブラリとパッチという形で開発を進めるアプローチが採られました。これにより、既存の
Ruby環境との互換性を保ちつつ、段階的な改善を行うことが可能となりました。
開発当初は、YARVは独立したプロジェクトとして進められていましたが、
2006年12月31日には
Rubyのリポジトリにマージされ、
Ruby本体に統合されました。そして、
2007年12月25日にリリースされた
Ruby 1.9.0から、YARVは
Rubyの標準処理系として正式に組み込まれることになりました。
YARVは、
バイトコードインタプリタとして
実装されています。従来のMRIでは、evalルーチンが直接
Rubyプログラムの構文木を解釈・実行していたのに対し、YARVでは、
Rubyプログラムの構文木を中間表現である
バイトコードにコンパイルし、その
バイトコードを仮想計算機上で実行するという方式を採用しています。この方式により、実行速度の向上が図られています。
バイトコードへのコンパイルは、プログラムの実行時に一度だけ行われるため、繰り返しの処理において効率が向上します。また、仮想計算機による実行は、プラットフォームに依存しない実行環境を提供し、
Rubyプログラムの移植性を高める効果ももたらします。
YARVの導入は、
Rubyのパフォーマンスを大幅に向上させ、大規模なアプリケーションや処理負荷の高いタスクにおける
Rubyの活用を促進しました。また、
Ruby 1.9.0以降の
Rubyは、事実上YARVを標準処理系としており、
RubyコミュニティにおけるYARVの重要性は非常に高いものとなっています。
YARVは、
Rubyの発展に大きく貢献したプロジェクトの一つであり、その技術は、他のプログラミング言語の処理系の開発にも影響を与えています。
Rubyコミュニティにとっても、YARVはなくてはならない存在であり、今後もその進化に注目が集まっています。
公式サイト:
YARV: Yet Another Ruby VM