ML语言
引用

1 2 3 4  Michael J. Gordon, Arthur J. Milner, Christopher P. Wadsworth. . Lecture Notes in Computer Science, Vol. 78. Springer-Verlag, New York, NY, USA. 1979  [2021-12-28]. （原始内容存档于2021-12-28）. ML is a general purpose programming language. It is derived in different aspects from ISWIM, POP2 and GEDANKEN, and contains perhaps two new features. First, it has an escape and escape trapping mechanism, well-adapted to programming strategies which may be (in fact usually are) inapplicable to certain goals. Second, it has a polymorphic type discipline which combines the flexibility of programming in a typeless language with the security of compile-time type checking (as in other languages, you may also define your own types, which may be abstract and/or recursive); this is what ensures that a well-typed program cannot perform faulty proofs. 
Michael J. C. Gordon（英语：）. . 1996  [2021-02-27]. （原始内容存档于2016-09-05）. Around 1973 Milner moved to Edinburgh University and established a project to build a successor to Stanford LCF, which was subsequently dubbed Edinburgh LCF. He initially hired Lockwood Morris and Malcolm Newey (both recent PhD graduates from Stanford) as research assistants. …… Milner, ably assisted by Morris and Newey, designed the programming language ML (an abbreviation for “Meta Language”). …… In 1975, Morris and Newey took up faculty positions at Syracuse University and the Australian National University, respectively, and were replaced by Chris Wadsworth and myself. The design and implementation of ML and Edinburgh LCF was finalised and the book “Edinburgh LCF” was written and published. In 1978, the first LCF project finished, Chris Wadsworth went off trekking in the Andes (returning to a permanent position at the Rutherford Appleton Laboratory) and I remained at Edinburgh supported by a postdoctoral fellowship and with a new research interest: hardware verification.
1 2  M. Gordon, R. Milner, L. Morris, M. Newey, C. Wadsworth.  (PDF). 1978  [2021-08-31]. （原始内容 (PDF)存档于2021-05-06）. ML is a higher-order functional programming language in the tradition of ISWIM, PAL, POP2 and GEDANKEN, but differs principally in its handling of failure and, more so, of types.
1 2  Bruce A. Tate, Fred Daoud, Ian Dees, Jack Moffitt. .  (PDF) Book version: P1.0-November 2014. The Pragmatic Programmers, LLC. 2014: 97, 101  [2021-09-04]. ISBN 978-1-941222-15-7. （原始内容 (PDF)存档于2021-03-15）. On page 101, Elm creator Evan Czaplicki says: 'I tend to say "Elm is an ML-family language" to get at the shared heritage of all these languages.' ["these languages" is referring to Haskell, OCaml, SML, and F#.]
1 2  Troels Henriksen, Niels G. W. Serup, Martin Elsman, Fritz Henglein, Cosmin Oancea.  (PDF). . PLDI 2017. ACM. 2017  [2021-09-04]. （原始内容 (PDF)存档于2020-09-20）.
↑  Lennart Augustsson（英语：）, Thomas Johnsson. . 1989  [2021-09-17]. （原始内容存档于2021-09-17）.
1 2  , Russian Software Development Network: Nemerle Project Team,   [January 24, 2021], （原始内容存档于2021-05-04）
1 2  Adam Chlipala.  (PDF). MIT / Association for Computing Machinery (ACM). January 2015  [2021-09-04]. （原始内容 (PDF)存档于2022-01-16）.
1 2  Robin Milner.  (PDF). 1978  [2021-09-01]. （原始内容 (PDF)存档于2020-11-01）.  Journal of Computer and System Sciences, 17(3):348–375.
↑  Robin Milner.  (PDF). Polymorphism—The ML/LCF/Hope Newsletter,Vol. 1, No. 1. 1982  [2021-09-09]. （原始内容 (PDF)存档于2022-01-28）.
↑  . 1977  [2021-10-10]. （原始内容存档于2021-10-10）.
↑  Luca Cardelli（英语：）.  (PDF). 1982  [2021-09-04]. （原始内容 (PDF)存档于2021-11-06）.
↑  Luca Cardelli.  (PDF). 1982  [2021-09-04]. （原始内容 (PDF)存档于2021-11-06）.
↑  Luca Cardelli（英语：）. . 1983  [2021-09-04]. （原始内容存档于2021-09-04）.  Bell Labs Technical Report TR-107.
Luca Cardelli. . 1984  [2021-09-03]. （原始内容存档于2021-09-03）.  In Proceedings of the 1984 ACM Symposium on LISP and Functional Programming, pages 208–217, New York, NY, USA. ACM.
↑  Kevin Mitchell, Alan Mycroft.  (PDF). 1985  [2021-09-10]. （原始内容 (PDF)存档于2022-01-29）.
1 2  Guy Cousineau, Gérard Huet（英语：）. . 1990  [2021-09-02]. （原始内容存档于2022-05-04）.  RT-0122, INRIA. pp.78.
Pierre Weis, Maria Virginia Aponte, Alain Laville, Michel Mauny, Ascander Suarez. . 1990  [2021-09-02]. （原始内容存档于2022-04-06）.  [Research Report] RT-0121, INRIA. pp.491.
↑  G. Cousineau, M. Gordon, G. Huet, R. Milner, L. C. Paulson, C. Wadsworth. . Internal document. Project Formel, INRIA. July 1985. 
Christoph Kreitz, Vincent Rahli.  (PDF). 2011  [2021-09-09]. （原始内容 (PDF)存档于2022-01-29）. This handbook is a revised edition of Section 2 of ‘Edinburgh LCF’, by M. Gordon, R. Milner, and C. Wadsworth, published in 1979 as Springer Verlag Lecture Notes in Computer Science no 78. ……The language is somewhere in between the original ML from LCF and standard ML, since Guy Cousineau added the constructors and call by patterns. This is a LISP based implementation, compatible for Maclisp on Multics, Franzlisp on VAX under Unix, Zetalisp on Symbolics 3600, and Le Lisp on 68000, VAX, Multics, Perkin-Elmer, etc... Video interfaces have been implemented by Philippe Le Chenadec on Multics, and by Maurice Migeon on Symbolics 3600. The ML system is maintained and distributed jointly by INRIA and the University of Cambridge.
1 2  .   [2021-08-31]. （原始内容存档于2022-04-13）. The Formel team became interested in the ML language in 1980-81. ……Gérard Huet decided to make the ML implementation compatible with various Lisp compilers (MacLisp, FranzLisp, LeLisp, ZetaLisp). This work involved Guy Cousineau and Larry Paulson. ……Guy Cousineau also added algebraic data types and pattern-matching, following ideas from Robin Milner ……. At some point, this implementation was called Le_ML, a name that did not survive. It was used by Larry Paulson to develop Cambridge LCF and by Mike Gordon for the first version of HOL ……. ……
Our main reason for developing Caml was to use it for sofware development inside Formel. Indeed, it was used for developing the Coq system ……. We were reluctant to adopt a standard that could later prevent us from adapting the language to our programming needs. ……We did incorporate into Caml most of the improvements brought by Standard ML over Edinburgh ML. ……The first implementation of Caml appeared in 1987 and was further developed until 1992. It was created mainly by Ascander Suarez. ……
In 1990 and 1991, Xavier Leroy designed a completely new implementation of Caml, based on a bytecode interpreter written in C. Damien Doligez provided an excellent memory management system. ……In 1995, Xavier Leroy released Caml Special Light, which improved over Caml Light in several ways. In 1995, Xavier Leroy released Caml Special Light, which improved over Caml Light in several ways. First, an optimizing native-code compiler was added to the bytecode compiler. ……Second, Caml Special Light offered a high-level module system, designed by Xavier Leroy and inspired by the module system of Standard ML. ……Didier Rémy, later joined by Jérôme Vouillon, designed an elegant and highly expressive type system for objects and classes. This design was integrated and implemented within Caml Special Light, leading to the Objective Caml language and implementation, first released in 1996 and renamed to OCaml in 2011.
↑  Lawrence C. Paulson. . 1989  [2021-10-10]. （原始内容存档于2021-10-10）. 
Michael J. C. Gordon（英语：）. . 1996  [2021-02-27]. （原始内容存档于2016-09-05）. In 1981, I moved to a permanent position as Lecturer at the University of Cambridge Computer Laboratory. ……Larry Paulson, recently graduated with a PhD from Stanford, was hired at Cambridge ……. About this time, and in parallel, G ́erard Huet ported the Edinburgh LCF code to Lelisp and MacLisp. Paulson and Huet then established a collaboration and did a lot of joint development of LCF by sending each other magnetic tapes in the post. …… Edinburgh LCF ran interpretively, but during Paulson and Huet’s collaboration an ML compiler was implemented that provided a speedup by a factor of about twenty. …… The resulting new LCF system was named “Cambridge LCF” and completed around 1985. Paulson did little work on it after that. Mikael Hedlund (of the Rutherford Appleton Laboratory) then ported Cambridge LCF to Standard ML (using a new implementation of ML that he created). The resulting Standard ML based version of Cambridge LCF is documented …… in Paulson’s 1987 book Logic and Computation.
↑  . 
Michael J. C. Gordon（英语：）. . 1996  [2021-02-27]. （原始内容存档于2016-09-05）. Whilst Paulson was designing and implementing Cambridge LCF, I was mainly concerned with hardware verification. …… The first version of the HOL system was created by modifying the Cambridge LCF parser and pretty-printer to support higher order logic concrete syntax. …… The core HOL system became stable in about 1988. A new release that consolidated various changes and enhancements called HOL88 was issued then. We were fortunate to receive support from DSTO Australia to document HOL and from Hewlett Packard to port it from Franz Lisp to Common Lisp (a job very ably done by John Carroll). …… In the late 1980’s Graham Birtwistle of the University of Calgary started a project to reimplement HOL in Standard ML. The work was done by Konrad Slind, under Birtwistle’s direction and with the collaboration of the HOL group at Cambridge. The resulting system, called HOL90, was first released around 1990. …… Recently John Harrison and Konrad Slind have entirely reworked the design of HOL ……. …… This new version of HOL is called “HOL Light”. It is implemented in Caml Light and runs on modest platforms (e.g. standard PCs). It is faster than the Lisp-based HOL88, but a bit slower than HOL90 running in modern implementations of Standard ML.
↑  Robin Milner.  (PDF). 1983  [2021-09-02]. （原始内容 (PDF)存档于2021-11-06）.
↑  R. M. Burstall, J. A. Goguen. . 1977  [2021-09-03]. （原始内容存档于2021-09-03）. 
Donald Sannella. . 1982  [2021-09-06]. （原始内容存档于2021-09-06）.
↑  Rod Burstall（英语：）, D.B. MacQueen, D.T. Sannella（英语：）.  (PDF). 1980  [2021-09-03]. （原始内容 (PDF)存档于2022-01-28）.  Conference Record of the 1980 LISP Conference, Stanford University, pp. 136-143.
↑  R.M. Burstall.  (PDF). 1968  [2021-09-13]. （原始内容 (PDF)存档于2022-01-28）.
↑  R.M. Burstall, J. Darlington. . Journal of the Association for Computing Machinery: 24(1):44–67. 1977  [2021-09-13]. （原始内容存档于2020-01-28）.
↑  Luca Cardelli.  (PDF). 1983  [2021-09-10]. （原始内容 (PDF)存档于2022-01-28）. 
Luca Cardelli.  (PDF). 1984  [2021-09-04]. （原始内容 (PDF)存档于2022-01-28）.
↑  David MacQueen. . LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming. August 1984: 198–207  [2021-06-23]. （原始内容存档于2021-05-02）.
↑
Robin Milner.  (PDF). July 1984  [2021-09-05]. （原始内容 (PDF)存档于2021-11-06）.
Robin Milner.  (PDF). October 1984  [2021-09-05]. （原始内容 (PDF)存档于2021-11-06）.
Robin Milner.  (PDF). 1985  [2021-09-05]. （原始内容 (PDF)存档于2021-11-06）.
Robert Harper, David B. MacQueen, Robin Milner.  (PDF). 1986  [2021-09-04]. （原始内容 (PDF)存档于2022-01-28）.  LFCS, Department of Computer Science, University of Edinburgh.
Robin Milner.  (PDF). 1987  [2021-09-04]. （原始内容 (PDF)存档于2021-09-04）.  LFCS, Department of Computer Science, University of Edinburgh.
Robert Harper, Robin Milner, Mads Tofte.  (PDF). 1987  [2021-09-04]. （原始内容 (PDF)存档于2022-01-28）.  LFCS, Department of Computer Science, University of Edinburgh.
Robert Harper, Robin Milner, Mads Tofte.  (PDF). 1988  [2021-09-04]. （原始内容 (PDF)存档于2022-01-28）.  LFCS, Department of Computer Science, University of Edinburgh.
Robert Harper, Robin Milner, Mads Tofte.  (PDF). 1989  [2021-09-04]. （原始内容 (PDF)存档于2022-01-28）.  LFCS, Department of Computer Science, University of Edinburgh.
↑  . 1991  [2021-09-13]. （原始内容存档于2021-09-13）. 
. 1993  [2021-09-13]. （原始内容存档于2020-08-12）.
↑  Andrew W. Appel（英语：）, David MacQueen. . 1987  [2021-09-03]. （原始内容存档于2021-09-03）. 
David Macueen. . 1988  [2021-09-03]. （原始内容存档于2021-09-03）.
↑  Andrew W. Appel（英语：）, David MacQueen. . 1991  [2021-08-31]. （原始内容存档于2021-08-31）. 
. 1993  [2021-09-14]. （原始内容存档于2022-03-28）.
↑  Robin Milner, Mads Tofte, Robert Harper.  (PDF). The MIT Press, Cambridge, MA, USA. 1990  [2021-03-01]. （原始内容 (PDF)存档于2021-01-14）.
↑  Robin Milner, Mads Tofte, Robert Harper, David MacQueen.  (PDF). The MIT Press, Cambridge, MA, USA. 1997  [2021-03-01]. （原始内容 (PDF)存档于2022-03-09）.
↑  Lars Birkedal, Nick Rothwell, Mads Tofte, David N. Turner. . 1993  [2021-09-13]. （原始内容存档于2021-09-13）.
↑  . 1993  [2021-09-13]. （原始内容存档于2021-09-13）.
↑  G. Cousineau, P.-L. Curien, M. Mauny. . 1985  [2021-09-04]. （原始内容存档于2021-09-03）.  LNCS, 201, Functional programming languages computer architecture, pp.~50-64.
Michel Mauny, Ascánder Suárez.  (PDF). 1986  [2021-09-04]. （原始内容 (PDF)存档于2022-01-28）.  LFP '86: Proceedings of the 1986 ACM conference on LISP and functional programming, Pages 266–278.
↑  Xavier Leroy. . 1990  [2021-09-06]. （原始内容存档于2022-04-06）.  RT-0117, INRIA.
↑  Xavier Leroy（英语：）. . 1997  [2021-09-02]. （原始内容存档于2022-03-08）.
↑  Xavier Leroy.  (PDF). Principles of Programming Languages. 1994  [2021-09-07]. （原始内容 (PDF)存档于2021-10-22）.
↑  Didier Rémy. . Research Report RR-1431, INRIA. 1991  [2021-09-10]. （原始内容存档于2022-04-06）. 
Didier Rémy, Jérôme Vouillon.  (PDF). 1997  [2021-09-06]. （原始内容 (PDF)存档于2022-01-21）. 
Didier Rémy, Jérôme Vouillon.  (PDF). 1998  [2021-09-06]. （原始内容 (PDF)存档于2022-01-20）.
↑  Xavier Leroy. . 1997  [2021-09-02]. （原始内容存档于2022-01-23）.
1 2  .   [2024-02-23]. （原始内容存档于2024-05-25）.
↑  Samuel Horsley（英语：） F. R. S. . Philosophical Transactions (1683–1775), Vol. 62. (1772), pp. 327–347. 1772  [2021-09-13]. （原始内容存档于2018-10-02）.
↑  Edsger W. Dijkstra, , , Prentice-Hall: 129–134, 1976, ISBN 978-0132158718 

Edsger W. Dijkstra,  (PDF), 1981  [2021-05-19], Report EWD792. Originally a privately circulated handwritten note, （原始内容 (PDF)存档于2019-04-04） .
↑  David Turner. . . Computing Laboratory, University of Kent. 1986  [2021-09-16]. （原始内容存档于2021-12-23）. 
CS3110. . Cornell University. 2018  [2021-09-16]. （原始内容存档于2022-03-03）.
↑  Gerald J. Sussman, Guy L. Steele Jr.  . 维基文库. 1975 （英文）. It is always possible, ……to perform any calculation in this way: rather than reducing to its value, it reduces to an application of a continuation to its value (cf. [Fischer]). That is, in this continuation-passing programming style, a function always "returns" its result by "sending" it to another function.
↑  CS312. . Cornell University. 2006  [2021-10-11]. （原始内容存档于2021-10-28）. 
CS3110. . Cornell University. 2014  [2021-10-11]. （原始内容存档于2018-02-15）.
↑  Bruce Duba, Robert Harper, David MacQueen.  (PDF). 1991  [2021-10-14]. （原始内容 (PDF)存档于2022-01-29）.
↑  Tokuda, Naoyuki. . van Leeuven, Jan  (编). . Amsterdam: North-Holland Publishing Co. 1992: 449–457. ISBN 978-0-444-89747-3.
↑  Ciura, Marcin.  (PDF). Freiwalds, Rusins  (编). . London: Springer-Verlag. 2001: 106–117  [2021-10-06]. ISBN 978-3-540-42487-1. （原始内容 (PDF)存档于2011-08-30）.
↑  W.H. Press, B.P. Flannery, S.A. Teukolsky, W.T. Vetterling.  (PDF). Cambridge University Press. 1988, 1992  [2021-10-05]. （原始内容 (PDF)存档于2022-03-23）.  请检查|date=中的日期值 (帮助)
↑  Stephen Weeks.  (PDF). Workshop on ML. 2006  [2021-09-17]. （原始内容 (PDF)存档于2022-01-24）.
↑  .   [2021-09-04]. （原始内容存档于2016-10-14）.
↑  "OCaml is an industrial strength programming language supporting functional, imperative and object-oriented styles" （页面存档备份，存于）. Retrieved on January 2, 2018.
↑  .   [2021-09-04]. （原始内容存档于2022-03-23）.
↑  Karl Crary. . Carnegie Mellon University. 2017  [2021-09-17]. （原始内容存档于2022-01-20）.
↑  .   [2021-10-14]. （原始内容存档于2021-12-10）.