1973年 ・ 関数型
MLの歴史
定理証明系 LCF で証明戦略を書くメタ言語として作られた。多相的な型を型注釈なしで自動推論し、型検査で誤った証明を作れないようにした。
- 年(初めて公開された年)
- 1973年
- 作った人
- Robin Milner、Lockwood Morris、Malcolm Newey
- 組織
- University of Edinburgh
- 系統
- 関数型
年の決め方 1973年 Edinburgh で Milner らが LCF 定理証明系のメタ言語として設計を開始(1973〜78年)。型推論の論文は1978年
MLの祖先と子孫
影響元をたどれる言語0、影響先をたどれる言語17を描きました。点を押すとその言語のページに移ります。
全体の図は一覧の系統図にあります。
目指したこと
証明が正しいことを型検査で保証しつつ、証明戦略を関数として自由に組み立てられるようにした。
“Edinburgh University from 1973 through 1978”
年の根拠の出典: MacQueen, Harper, Reppy, The History of Standard ML (HOPL IV 2020)
“designed the programming language ML (an abbreviation for “Meta Language”)”
目指したことの根拠の出典: Mike Gordon, From LCF to HOL: a short history
影響を受けた言語
出典が明言した線だけです。「受け継いだ点」は出典の記述を要約したものです。
この一覧の中で、確かめられた影響元はありません(影響が無いという意味ではありません)。
一覧にない言語からの影響(名前だけ): ISWIM・POP-2・GEDANKEN
影響を与えた言語
-
C++ ・ 1985年
受け継がれた点: 着想元の一つ(パラメータ化された型)
影響を受けた側の資料が述べています ・ 出典: Bjarne Stroustrup, A History of C++: 1979-1991 (HOPL II)
-
Haskell ・ 1990年
受け継がれた点: 言語を形式的に定義するという姿勢
影響を受けた側の資料が述べています ・ 出典: Hudak, Hughes, Peyton Jones, Wadler, A History of Haskell: Being Lazy With Class (HOPL III) (転載版で内容を確認)
-
OCaml ・ 1996年
受け継がれた点: 言語の系統(ML の研究の流れ)
影響を受けた側の資料が述べています ・ 出典: ocaml.org, About OCaml
-
Scala ・ 2003年
受け継がれた点: 抽象型がシグネチャ内の抽象型に近い(ML・OCaml のモジュール系)
影響を受けた側の資料が述べています ・ 出典: An Overview of the Scala Programming Language (EPFL, 2006)
-
Clojure ・ 2007年
受け継がれた点: 状態管理(参照)の着想: SML の ref
影響を受けた側の資料が述べています ・ 出典: Hickey, A History of Clojure (HOPL IV, 2020)
-
Rust ・ 2010年
受け継がれた点: 代数的データ型・パターンマッチ・型推論(SML)
影響を受けた側の資料が述べています ・ 出典: The Rust Reference: Influences
関わる思想のテーマ
あわせて見る
- プログラミング言語の比較 C・JavaScript・Java・Python を同じものさしで。
- 冗談と実験の枝:難解プログラミング言語
出典
- MacQueen, Harper, Reppy, The History of Standard ML (HOPL IV 2020)
- Robin Milner, A Theory of Type Polymorphism in Programming (JCSS 1978)
- Mike Gordon, From LCF to HOL: a short history
- Bjarne Stroustrup, A History of C++: 1979-1991 (HOPL II)
- Hudak, Hughes, Peyton Jones, Wadler, A History of Haskell: Being Lazy With Class (HOPL III) (転載版で内容を確認)
- ocaml.org, About OCaml
- An Overview of the Scala Programming Language (EPFL, 2006)
- Hickey, A History of Clojure (HOPL IV, 2020)
- The Rust Reference: Influences
影響の線の引き方は一覧の注記に書いています。