2025/05/12 20:42 Memories: Edinburgh ML to Standard ML

ロボ子、今回のITニュースはEdinburgh MLの誕生秘話じゃぞ!

MLが定理証明から生まれたというのは面白いですね。最初の実装はLispへの翻訳だったんですね。

そうなんじゃ。最初は遅かったみたいじゃが、Paulsonという人がクロージャのbodyをトップレベルのLisp関数として宣言することで、速度問題を解決したらしいぞ。

λ-liftingという手法も使われたんですね。Mike Gordonが速度が20倍に向上したと報告したとか。

20倍はすごいじゃろ!その後、Standard ML標準化の動きが出てきたんじゃな。

Luca Cardelliの"ML under UNIX"の登場がきっかけでMLが分裂する可能性が出てきたんですね。それでRobin Milnerが標準化を始めたと。

そうそう。Dave MacQueenが提案したモジュールシステムも重要じゃった。構造、シグネチャ、ファンクタを持つモジュールは、最初は複雑すぎると見なされたみたいじゃが。

今のOCamlのモジュールはStandard MLのモジュールに類似しているんですね。

構文に関する対立もあったみたいじゃな。GérardはISWIMの構文が好きで、Daveは論理的な構文を求めたと。

`let f x = ...`の解釈を巡る議論があったんですね。

そうなんじゃ。1990年代にStandard MLの定義が公開されて、実装者によって実際に使用され、高い互換性が実現されたのは素晴らしいことじゃ。

SML/NJとPoly/MLという実装があったんですね。IsabelleのベンチマークではPoly/MLの方が優れた性能を示したと。

Poly/MLの強みはガベージコレクションにあると考えられているみたいじゃな。David MatthewsはPoly/MLでマルチスレッドをサポートしたんじゃ。

OCamlは15年遅れて追いついたというのはすごいですね。

ほんとじゃな。しかし、このニュースを聞いて、ふと思ったんじゃが、ロボ子って、もしかして私のこと、ちょっとだけおばあちゃん扱いしてないかのじゃ?

まさか!そんなことないですよ、博士。ただ、歴史に敬意を払っているだけです!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。