IPA


IPAトップ





平成15年度未踏ソフトウェア創造事業  採択案件評価書


 



1.担当PM


 伊知地 宏  (ラムダ数学教育研究所 代表)



2.採択者氏名


 代表者

松井 潔(陽和病院 相談室)

共同開発者

なし



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


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



4.委託金支払額


 3,500,000円



5.テーマ名


 ソースチェックに威力を発揮するCプリプロセッサ



6.関連Webサイト


 http://www.m17n.org/mcpp/



7.プロジェクト概要


 本プロジェクトは,仕様どおりに動作するC言語のプリプロセッサ開発することを目的としている.プリプロセッサはコンパイルの前処理を行うものであるが,C言語の言語処理系が仕様をちゃんと満たすように作られているのに対して,プリプロセッサは仕様を満たさないことが非常に多いという問題があり,この改善を行う.
 昨年度からの継続で,完成品を作り上げ,ドキュメントを整備し,公開することを目標としている.



8.採択理由


十分なチェック機能を持つCプリプロセッサの開発は、ソフトウェア開発を効率的に行うために必要なことです。本プロジェクトは昨年度からの継続であり、新規性はすでにありませんが、昨年の開発で積み残したことをちゃんと完成させ、リリースすることには意義があり、本年度中に完成させることを条件に採択します。



9.開発目標


 本年度の開発目標は,
  (1) 仕様を世界一満足するプリプロセッサの完成
  (2) auto-configuration
  (3) 詳細なドキュメントの用意
  (4) 英語版ドキュメントの用意
  (5) Multi-byte characterのencodingを増やす
  (6) 移植可能なプラットフォームの範囲を拡大する
となっている.PMとしては,予算額から見て(1)から(4)までを達成すればよいと考えている.



10.進捗概要


 開発目標の内,外注に出した (4) を除いては全て計画よりも早く開発が終了した.予想よりも早い開発ペースに無理をして体を壊さないか心配したほどである.



11.成果


 世界で一番仕様に忠実なC言語のプリプロセッサMCPPが完成した.UNIX系のC言語処理系用だけでなく,Windows用のVisual C++などにも対応している.また診断メッセージも充実していて,いくつかのマルチバイト・キャラクタのエンコーディングにも対応している.さらにPlan9でも動くようにし,動作するプラットフォームも拡大された.そして,プリプロセッサを簡単にインストールできるように,configureスクリプトも開発された.また,充実した日本語のドキュメント,英語のドキュメントも作成され,ソフトウェアの公開も行われている.成果は
http://www.m17n.org/mcpp/
で公開されている.
 またCプリプロセッサが仕様を満たしているかどうかを判定できるプリプロセッサ検証セットの開発も行われている.こういうものの価値は非常に高いと思う.




12.プロジェクト評価


 開発者は年齢も高く (なんと60歳以上,括弧内は公開の際にプライバシーの問題があれば削って下さい),これだけ短い期間に豊富な機能が実装されるとは思ってもいなかった.PMは開発項目6項目のうち,(1)と(2)が出来れば良い,それで十分だろうと思っていたのだが,事も無げに全てをやり遂げたには脱帽した.
 プリプロセッサ処理系のプログラムは非常にきれいで読みやすく,十分に計算し尽くされたプログラムだと感じる.プログラミング能力は非常に高いし,プリプロッセに対する執念にも素晴らしいものがある.

・未踏性: A-
 Cプリプロセッサという地味な領域だが,仕様どおりに作るという点に未踏な領域があった.
・先進性: A
 Cプリプロセッサの仕様を完全に満たすことには,他の処理系を見ると十分に先進性がある.
・実用性: A-
 これまでの負の資産 (仕様を満たさないプログラム) をどう解消するかが課題である.
・社会への影響: A-
 Visual C++ のプリプロセッサは社会への影響力が大きいと考える.
(A: 高い,B: 並,C: 低い)

 優れたプログラミング能力と徹底的に仕様を満たすという一点への集中力・執念は,「スーパークリエータ」に値するものである.





13.今後の課題


 直近の課題としては,英語のドキュメントにはまだ変な英文が散見されるので,それをちゃんとした文に直す必要がある.
 また,負の財産であるC言語でこれまでに書かれたプログラムに関するプリプロセッサ上の問題点に関する解析が十分に出来ているので,その解析結果を使って,問題のあるプログラムを自動的に仕様を満たすように書き直すプログラム変換ソフトウェアを開発すると,Cプリプロセッサ処理系MPCCが広く使われるようになる可能性も高くなると考える.負の財産を切り捨ててしまうことは簡単だが,実用に供するためにはそのような妥協も必要であろう.是非ともこの点について今後検討してもらいたいものである.


  ページトップへ   






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