あした役に立つ、10年後に役に立つソフトウェアを
創造情報学専攻 笹田耕一 講師

「Ruby」の高速版を実現、汎用言語へ地ならし
持論は「実際に使われてはじめて、価値が出る」

笹田耕一 講師 世界が注目するプログラミング言語「Ruby」に、高速処理という新たな機能が加わった。その仕掛け人が笹田講師。バーチャルマシン(VM)という技術を使って実現した。産みの親のまつもとゆきひろ氏とともに、開発コアメンバーの一人としてRubyの機能強化、普及拡大を目指している。「ソフトウェアは実際に使われてはじめて、価値が出る」というのが持論で、“開発者”の顔を鮮明に持つ研究者だ。数倍もの高速化を可能にし、テキスト処理主体から、Rubyが従来苦手としてきた数値処理、記号処理にも適用できる見通しをつけたのも、「より使いやすいソフトウェアを多くの人に提供したい」という意思の表れである。Ruby新バージョン用に開発した高速化手法を他の言語処理系に応用したり、新概念の斬新な次世代CPU用のOS開発を狙うなど、28歳の若い開発者の視点は限りなく広い。

サン・マイクロも注目したVM技術

 「Ruby」は日本発のプログラミング言語である。C++やJava、SmalltalkやEiffelなどでは大げさすぎると思われるような領域でのプログラミングを支援するのが目的。エレガントでシンプルな文法でつくられているので、手軽で使いやすいが、テキスト処理に優れた機能を持つRubyの中で、高速化は課題の1つだった。その可能性が残されているのに、誰も手を付けていなかったところに笹田講師は着目した。というのも、Rubyは言語処理系の処理時間を気にするような用途には、あまり利用されていなかった。汎用プログラミング言語として一般的に使われるようになると、高速化はRubyの活用範囲を一段と拡大する魅力的なアドバンテージになる。その高速化技術として仮想マシン(VM)を駆使した。特定のCPU上で走るプログラミング言語処理系をつくったとすると、他のCPU上では動かなくなる恐れがある。これを解消するために、中間層にVMを置き、ここで動けば同様の環境下で動作させることが可能になるので、汎用性を確保できるのだ。

ルビーの公式ロゴ
ルビーの公式ロゴ

 2004年の初め、東京農工大大学院の電子情報工学専攻博士課程のとき、笹田さんはRuby処理系の高速化研究に乗り出す。趣味として操っていたRubyが明確な研究対象になったのは、情報処理推進機構(IPA)のソフトウェア開発で優れた才能を持つスーパークリエーターに認定されたこと。IPAが推進する未踏ソフトウェア創造事業の2004年度の未踏ユースプロジェクトに選ばれたのがきっかけだ。仮想マシン「YARV」(Yet Another Ruby VM)と名づけた高速処理系の研究は、04、05、06年度の3年間、未踏ユースおよび未踏プロジェクトに採択され、この機能を搭載した新バージョンのRuby1.9.0-0が、2007年12月25日にリリースされた。

 最新版のRuby1.9.0は、VMの導入により、基本的な機能は従来よりも数倍高速になった。たとえば、Ruby1.8以前では、Rubyプログラムを構文解析という操作で抽象構文木(AST)に変換し、これをたどりながら実行していたが、「ASTを独自の命令セットに変換して実行することで高速化した」のだ。例外処理についても、発生したときだけ処理する発想を持ち込み、高速処理に結びつけた。VM化によって、科学技術計算に使えるほどの速さを達成したわけではないが、その糸口を見いだした。とはいえ、Ruby1.9.0はまだ完成版ではない、開発版という位置付け。「荒削りの部分を丸くする研究が残されている」ためだ。

汎用OS 、組み込みOSなどオリジナルソフトに的

笹田耕一 講師

 次のターゲットは、VM技術の他への波及である。その一環として、米国サン・マイクロシステムズ社と産学連携した。サンのJavaは世界的に普及しているプログラミング言語で、VM上で動く。Javaで記述されたJRubyという処理系も開発されており、現在注目されている。そのような競合相手ながら相互に知恵を生かす作戦を展開、協力してRuby上でマルチVM環境の実現を目指す。Rubyの場合、複数のアプリケーションを実行すると複数のインタープリターが起動し、メモリー消費量などに問題が生じていたが、マルチVM環境によって問題の解消を図る狙いだ。この成果をRuby開発者やコミュニティーに還流させるのは言うまでもない。

 もう一つは、独自のOSやシステムソフトウェア開発だ。笹田講師は並列計算機上で動くOS研究を手がけた実績がある。現在、1個のCPUにコアを2、4、8個搭載して多様な計算を並列で実行させる方向になった。将来は1CPUに100個、あるいは1000個ものコアを詰め込むようになるかもしれない。そうなると、アーキテクチャーもソフトウェア体系もまったく違ったものになる。そうした時代では、CPUのアーキテクチャー側とソフトウェア側の密度の濃い協調がカギとなるため、笹田講師はすでにハードウェア研究者とのコラボレーションも始めている。汎用OSとともに、ロボット制御などに使う組み込みOSにも目を向け、並列Rubyの可能性も視野に入れている。

Rubyの高速化の結果 メニーコアの構成例
Rubyの高速化の結果 メニーコアの構成例
キャッシュコアを例に
※画面をクリックして拡大画像をご覧下さい

 笹田講師がソフトウェアに目覚めたのは中学生のころ。「ソフトウェアを最初から一人で仕上げれば、そのソフトウェアについて完全に支配できる」という発想が芽生えた。そして、農工大の学生だった2003年ごろ、「Rubyソースコード完全解説」という本の大学外での読書会に参加、Ruby実装の良さと問題点の両方に触れる。決定打になったのが、あるイベントで偶然、隣に座ったまつもと氏との出会い。それ以来、Ruby開発だけでなく、日本Rubyの会の運営にも尽力している。「あした役に立つのがRuby、それだけでなく、10年後、20年後に役に立つソフトウェア技術の研究も重要。どちらにも取り組みたい」。これが本音である。

 2008年2月、笹田さんは特任助教から講師に昇格した。情報理工が東工大、NIIと共同で推進中のIT人材育成の「情報理工実践プログラム」に携わる一方、個人的にRuby開発にタッチしている。これからも、IT人材の育成を柱に、役に立つという視点に立ってソフトウェアを追求する開発者であり続けたいという。「人生思うがまま」―笹田講師のこの座右の銘は、「ファイナルファンタジーの作曲者、植松伸夫さんが出版されたエッセイのタイトルをそっくりいただいたもの。人生思いどおりになるという意味ではなく、思ったとおりのものになる」。今までの人生の歩みは、どうやら座右の銘そのもののようだ。

ISTyくん