IPA


開発成果一覧へ





2004年度第1回未踏ソフトウェア創造事業  採択案件評価書


 



1.担当PM


   加藤 和彦 (筑波大学 電子・情報工学系 教授)



2.採択者氏名


 代表者

住井 英二郎( University of Pennsylvania   Department of Computer and Information Science, Research Associate )

共同開発者

住井 真紀子(フリー)



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


  日本エンジェルズ・インベストメント株式会社



4.委託金支払額


  4,000,000



5.テーマ名


  美しい日本の ML コンパイラ



6.関連Webサイト


 http://min-caml.sourceforge.net/



7.テーマ概要


 
ソースコードを「読まれる」こと,プログラミング言語処理系に関する教育に用いることを前提として,プログラミング言語MLのサブセットのコンパイラを開発した.ML は高階関数,多相・再帰データ型,パターンマッチング,型推論、例外処理、自動メモリ管理、モジュールシステムといった高度な機能をもつプログラミング言語である.本プロジェクトは,教育目的を主目的としつつ,簡潔な規模を保ちながら,実用レベルにつながる機能を有する同言語のコンパイラを開発する.これを満たしているML言語の実装は世界的に見てもなく,他のプログラミング言語を含めても同様の状況にある.



8.採択理由

 

  これまでに十分な準備がなされており,研究実績と合わせて,開発目的を達成できる可能性は十分にあると判断した.



9.開発目標


 以下の三点を開発目標としている.
 ・実装が簡潔である(約2000行).
 ・性能のよいコードを生成する(OCamlやGCCと同等以上).
 ・自明でないアプリケーション(例えばレイトレーシング)を実行できる.



10.進捗概要


 開発内容は,提出されたドキュメントの一つである「速攻MiniCamlコンパイラ概説」において詳説されている.ソースコードの内容が分かりやすく解説されており,しかもWebページ上において,大変に見やすいGUIのもとで公開されている.




11.成果


 開発目標で設定された三点は満たされた.SPARCのネイティブコードを出力する.
当開発者からの報告によれば,開発行数は2241行(OCaml言語で記述),実効性能は下記のようである.
   典型的な関数型プログラム(アッカーマン関数)
   GCC 6.8秒 OCaml 0.9秒 未踏ML 0.9秒
   典型的な命令型プログラム(レイトレーシング)
   GCC 14.7秒 OCaml 36.7秒 未踏ML 17.0秒
出力コードの性能に関しても,十分なレベルに達していると考えられる.



12.プロジェクト評価


 trivialではない当初の三つの目標を見事果たした点は立派である.二千行程度という多くの人にとって理解しやすいソースコード規模で,注意深く選ばれた言語機能と言語処理アルゴリズムを実現し,なおかつ,これだけの性能を達成していることは驚嘆的と言って良いだろう.



13.今後の課題


 前述のように,開発目で述べた三点を同時に満たしているソフトウェアは,他のプログラミング言語を含めてもほとんどない.日本のみならず,プログラミング言語処理系を学ぼうとする世界の教育・研究に資するようになって欲しい.
 簡潔性を犠牲にすることなく,機能拡張を行っていくことも今後の一つの方向性であろう.
 巷で多く使われているインテルx86 CPUコード出力はぜひ果たし欲しい.


  ページトップへ   






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