IPA


IPAトップ





2004年度未踏ソフトウェア創造事業(未踏ユース)  採択案件評価書


 



1.担当PM


 筧 捷彦   (早稲田大学教授)



2.採択者氏名


 代表者

笹田 耕一  (東京農工大学大学院博士課程 )

共同開発者

なし



3.プロジェクト管理組織


 三菱マテリアル 株式会社



4.委託支払金額


  2,825,000 円



5.テーマ名


  Rubyプログラムを高速に実行するための処理系の開発



6.関連Webサイト


  http://www.atdot.net/yarv/



7.プロジェクト概要

 Ruby プログラムを高速に実行するための処理系 YARV : Yet Another Ruby VM を開発した。 YARV では,さまざまな最適化を実装し,基本性能で 10 倍程度の高速化を実現した。引き続き JIT コンパイラ, AOT コンパイラをより洗練されたものへ仕上げるとともに, Ruby 処理系との統合を図り,次期 Ruby ( Ruby2.0 )の公式実装 Rite への採用を目指す。

 具体的な開発項目は,つぎのとおりである。

(1) Ruby プログラムを表現可能な命令群と仮想計算機の設計・開発

(2) Ruby プログラムを (1) の命令セットへ変換するコンパイラの開発

(3) JIT(Just in Time) コンパイラの開発

(4) AOT(Ahead of Time) コンパイラの開発





8.採択理由


  言語処理系に関してしごく真っ当な話。
 日本発のスクリプト言語 Ruby をとにかく高速化しようというもので,技術力はなかなか高いものを持っている。
 2〜3倍(実験値)なの?もっと上がらないの?Ruby の創始者ともコンタクトをとって,Ruby愛好者のIntn'l Conference で皆の度肝を抜かしてくれることを期待できそう。




9.成果概要

  Ruby プログラムを表現可能な命令群をもつ仮想計算機 YARV の開発,Ruby からYARV 命令語へ変換するコンパイラの開発,実験的なJIT コンパイラ,AOT コンパイラの開発を,すべて完了した。さらに, YARVについては,多くのテストプログラムを用いて性能評価を行い,その結果を反映させてさまざまな最適化を施している。その結果として,従来の Ruby 仮想計算機に比べ,基本性能で 10 倍(多くのテストプログラムについての平均)をはじき出し,ベンチマークプログラムでは2倍以上の性能向上を示した。さらに,JIT コンパイラを適用すると20%程度の速度向上が得られ, AOT コンパイラを適用すると20%以上の速度向上が得られる。

 

 Ruby 自体は,動的な言語機能を備えたものである。その特性を失うことなく,考えられうる最適化手法を施した仮想計算機と,その仮想計算機の命令語へ変換するコンパイラを,“世界最速の Ruby 処理系”の名にふさわしい形で仕上げた。





10. PM評価とコメント

  開発者の笹田耕一さんは,大学院博士課程に在籍している。プロジェクト自身は,笹田さんのこれまでに情報系の専門教育で培ってきた知識・能力をすべて発揮して行われている。施した最適化の手法もそうである。一群の処理系を開発するのにあたって,言語処理系というプログラムがもつ特性を活かして,多重にブートストラップを行う形をとっていて,実際に手で行ったコーディングの行数が 7000 行程度であるというものそうである。あまりに見事にやり遂げているので,これは笹田さんが育った教育課程そのものが素晴らしかったのであって,笹田さん個人の能力に由来するものでないというやっかみもしてみたくなるほどである。とはいえ,これだけのものを仕上げる力は,スーパークリエイターと呼んで差し支えないだろう。

 

 笹田さんは, Ruby 創始者とも連絡をとり,予定されている Ruby の 2.0 版への改訂にあたっては開発した YARV をそのエンジンとするように働きかけているという。笹田さんは,また,日本 Ruby の会の発足にも協力し, Web マガジン Rubyist Magazine の発行も行うなど, Ruby そのものの普及・啓発にも貢献している。見方を変えれば,今回のプロジェクトも,この日本発のプログラミング言語 Ruby にそこまでほれ込んでいるからこそ,できたことであるといっていいだろう。



  ページトップへ   






  Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004