謝辞
2003年にスタートしたSML#開発の過程では,以下を含む色々な ご指導やご協力を頂きました. ここに謝意を表します.
プロジェクトファンディング
2003年に,北陸先端科学技術大学院大学にて,文部科学省リーディングプロジェクトe-Society基盤ソフトウェアの総合開発 「高い生産性をもつ高信頼 ソフトウエア作成技術の開発」 (領域代表者:片山卓也)の一つの課題 「プログラムの自動解析に基づく高信頼ソフトウェアシステム構築技術」(2003年―2008年,究代表者:大堀 淳)としてスタートをきることができました. このプロジェクトの主要な目標がSML#言語コンパイラの開発でした. SML#は開発ソースの総量が20万行を超える大規模システムです. このプロジェクトの支援がなければ,SML#の開発は困難であったと思われます. 文部科学省,e-Societyの領域代表の片山卓也先生,および関係各位に深謝いたします. この大型プロジェクトに加え,SML#の理論や実装方式の研究開発には,複数の科学研究費補助金によるサポートを受けています.
SML#が使用しているソフトウエア
SML#言語は,第1.0版以降は,SML#自身でコンパ イルし開発を行なっていますが,それ以前は,Standard ML of New Jerseyおよ びMLtonのStandard MLコンパイラを使って開発を行いました.
SML#はSML#開発チー ムによって開発されたソフトウェアです. ソースコードの殆どをスクラッチから開発しましたが,一部に以下のコー ドを利用しています.
内容 | SML#ソース上の位置 | ソース |
---|---|---|
ML-Yacc | src/ml-yacc | Standard ML of New Jersey 110.73 |
ML-Lex | src/ml-lex | Standard ML of New Jersey 110.73 |
ML-Lpt | src/ml-lpt | Standard ML of New Jersey 110.99 |
SML/NJ Library | src/smlnj-lib | Standard ML of New Jersey 110.99 |
TextIO, BinIO, OS, Date, Timer | src/smlnj | Standard ML of New Jersey 110.73 |
浮動小数点/ 文字列変換関数 | src/runtime/netlib | the Netlib |
これらソースは,いずれもSML#ライセンスと整合性あるライセ ンスで配布されているオープンソースソフトウェアです. 「SML#ソース上の位置」およびソースパッケージのトップレベル にそれぞれのライセンスが添付されています.
研究開発協力者
SML#言語の開発にあたっては,多くの人々からの指導を受けました. 過去現在の開発チーム以外で特に貢献のあった方々は以下の通りです.
-
大和谷 潔氏 e-Societyプロジェクトに参加し、SML#の最初の処理系である抽象機械の開発やSMLFormat、SMLDoc、SMLUnit、LMLMLなどのツールの開発を行い、SML#プロジェクトのスタートアップに大きく貢献しました。
-
纓坂 智氏 大堀と共に、表示的意味論に基づくパターンマッチングアルゴリズムの系統的な導出方法を開発しました。現在でも、SML#のマッチコンパイラは、この時に開発されたコードが使われています。この理論的な堅牢さのため、マッチコンパイラフェーズは、SML#の開発の歴史の中でも、累積バグ数0を誇っています。
-
Huu-Duc Nguyen氏 大堀と共に実行時タグなどを必要としない自然なデータ表現を可能にするコンパイル方式を確立しました。この方式は、初期のSML#コンパイラに実装され、SML#の特徴の一つであるC言語との直接連携などを可能にする技術開発の出発点となりました。
-
Liu Bochao氏 大堀と共にStandard MLのモジュールをラムダ式にコンパイルする方式の研究を行い、初期の成果をあげました。現在のSML#の分割コンパイル技術は、この初期の成果を洗練し拡張することによって実現しています。
-
篠埜功氏 大堀と共に,関数フュージョン機能を持つ新たしいインラインの理論およびその実験的な実装を行いました. この機能は実験的な実装がありますが,まだ十分な完成度が得られておらずSML#3.7.0版に組み込まれていませんが,将来取り入れたいと考えています.
-
大友聡顕氏 大堀,上野と共に,オブジェクトを動かさないGCの研究開発に携わり,初期の実験的な実装を行い,この方式が有望であることを確認しました. この成果は,現在のオブジェクトを動かさないGCの方式の開発と実装の基礎となったものです.
-
NECソリューションイノベータ(旧NECソフトウェア東北)殿 [SML#を利用したERPシステム開発プロジェクトを実施いただきました。その成果は、ICFP 2014に報告されています。
-
佐々木智啓氏 上野、大堀と共に、一般化された自然結合のコンパイル技術(ML Family Workshop)を開発し、また部分動的レコードのコンパイル技術開発に貢献しました。これらはそれぞれ1988年、1996年にすに構想されていましたが、コンパイル方式が確立されておらず、ネイティブコードコンパイラでの実現は困難でした。本成果は、型主導コンパイル方式によりこの困難を克服したものです。現在のSML#に実装されています。
-
美馬久行氏 大堀,上野と共に,有限多相性の型理論とそれに基づく型主導コンパイルの最適化技術を開発しました。現在のSML#の最適化の中核の一つとなっています。
それ以外にも多くの共同研究者から色々な機会に示唆や助言を頂いており,それらは1989年にまで遡りますが,それらの方々の列挙は割愛させていただきます.