The History of Standard ML
This page will contain links to historical documents related to the
development and evolution of the ML language, and Standard ML in
particular.
Papers and Talks
-
Luca Cardelli and the Early Evolution
of ML, by David MacQueen. A paper presented at the Luca
Cardelli Fest at Microsoft Research Cambridge on Sept. 8, 2014.
-
The History of Standard ML: Ideas,
Principles, Culture, by David MacQueen. Slides for a
presentation at the ML Family Workshop, Vancouver, September 3, 2015
-
The History of Standard ML
(2020.04.05, final HOPL version),
by David MacQueen, Robert Harper, and John Reppy. A paper to be
presented at the ACM History of Programming Langauges conference,
currently postponed until perhaps the first half of 2021. Also,
we offer the extensive
standardml.bib BibTeX bibliography file used for this paper.
Design Documents
Core Language
-
A Proposal for Standard ML
(TENTATIVE), by Robin Milner, April, 1983. The first draft of Milner's
proposal for core Standard ML, which provided the basis for discussions
at the first informal Standard ML meeting at Edinburgh in early April, 1983.
-
Changes to proposal for standard
ML, by Robin Milner, April/May 1983(?).
Changes to the initial TENTATIVE proposal, probably in response to
discussions at the first Standard ML meeting and comments on the
circulated Proposal.
-
A Proposal for Standard ML
(second draft), by Robin Milner, June 1983. The second draft of Milner's
proposal for core Standard ML, incorporating changes resulting from discussions
and correspondence after the first informal Standard ML meeting in
April, 1983. Section 1.1 gives some early history.
-
A Proposal for Standard ML, by
Robin Milner, November 1983. The third draft of Milner's
proposal for core Standard ML.
-
The Standard ML Core Language, by
Robin Milner, July 1984. The language described is essentially the
same as described in "A Proposal for Standard ML", appearing
in the 1984 ACM Conference on LISP and Functional Programming,
Austin, Texas.
-
The Standard ML Core Language, by
Robin Milner, October, 1984. The second draft of the "Core Language"
design.
-
The Standard ML Core Language (Revised), by
Robin Milner, September, 1985. The third draft of the "Core Language"
design.
Module Language
-
Modules for
Standard ML by David MacQueen, August, 1983. First manuscript
draft of the modules proposal.
-
A simplified syntax
for instances and module definitions, with a proposal for treating
sharing specifications by Robin Milner, 1984.5.23. A proposal
for discussion at the June 1984 design meeting.
-
Dependent Types and
Modular Structure by David MacQueen, June, 1985, Marstrand,
Sweden. Talk presented at the Marstrand Workshop on Specification
and Derivation of Programs.
-
Webs by Robin Milner,
1985.09.01. An abstract model of sharing in modules.
-
A Denotational
Semantics for ML Modules by Don Sannella, November, 1985.
Design Meetings
Core Language Notes
Types and Type Checking
Cardelli ML and Edinburgh ML
-
The ML Abstract
Machine by Luca Cardelli, November, 1980. Early discription
of the abstract machine that developed into the FAM (Functional
Abstract Machine).
-
A Module Exchange Format
by Luca Cardelli, December, 1980. Primitives needed to implement
an Environment facility for (Cardelli) ML to support modules.
-
ML under VMS by
Luca Cardelli, 1982. Tutorial introduction to Cardelli ML, as
implemented by his compiler on VAX-VMS.
-
EDINBURGH ML
by Luca Cardelli, March, 1982. A README file accompanying the
distribution of Cardelli's ML Compiler for VAX-VMS.
-
Differences between
VAX and DEC-10 ML by Luca Cardelli, March, 1982. Describes
differences between Cardelli's dialect of ML ("VAX ML" or
"ML under VMS") and LCF/ML.
-
ML System on Vax Unix
by Nobuo Saito, March, 1982. README for an independent port of "ML under VMS"
(Cardelli ML compiler on VAX-VMS) to Unix.
-
ML Progress Report by Kevin Mitchell (for Rod Burstall),
1983.09.13. Progress report on Edinburgh ML, the reimplementation of Cardelli
ML as a self-bootstrapping compiler.
-
The Edinburgh Standard ML Compiler
by Kevin Mitchell and Alan Mycroft, January, 1985. The Edinburgh ML
compiler updated with Standard ML features.
Formal Definitions
Implementation/System Notes
Basis Library Documents
These are various documents connected to the design of the Standard ML Basis Library,
which was part of the 1997 revision of the Definition of Standard ML.
-
Toward a standard Standard ML (author unknown).
The original proposal for standardizing an SML Basis Library.
-
A New Initial Basis for Standard ML (Draft)
by Andrew Appel, Dave Berry, Emden Gansner, Lal George, Lorenz Huelsbergen,
Dave MacQueen, and John Reppy, March 5, 1994.
-
A New Initial Basis for Standard ML (Draft)
by Andrew Appel, Dave Berry, Emden Gansner, Lal George, Lorenz Huelsbergen,
Dave MacQueen, and John Reppy, June 6, 1996.
-
Proposed interface for Standard ML stream I/O
by Andrew Appel, November 14, 1994. Working draft proposal for the design
of stream I/O for Standard ML.
-
Proposed interface for Standard ML stream I/O
by Andrew Appel, November 30, 1994. Working draft proposal for the design
of stream I/O for Standard ML.
-
Proposed interface for Standard ML stream I/O
by Andrew Appel, January 11, 1995. Working draft proposal for the design
of stream I/O for Standard ML.
-
Proposed interface for Standard ML stream I/O
by Andrew Appel, January 11, 1995. Working draft proposal for the design
of stream I/O for Standard ML.
-
Proposed interface for Standard ML stream I/O
by Andrew Appel, February 6, 1995. Working draft proposal for the design
of stream I/O for Standard ML.
-
Proposed interface for Standard ML stream I/O
by Andrew Appel, May 31, 1995. Working draft proposal for the design
of stream I/O for Standard ML.
-
Proposed interface for Standard ML stream I/O
by Andrew Appel, June 23, 1995. Working draft proposal for the design
of stream I/O for Standard ML.
-
Proposed interface for Standard ML stream I/O
by Andrew Appel, July 13, 1995. Working draft proposal for the design
of stream I/O for Standard ML.
-
A safe interface to sockets (draft)
by John Reppy, May 28, 1996. Proposal for a type-safe sockets interface.
-
A ``Safe'' Sockets API
by John Reppy, September 20, 1995. Slides from talk given at
the IFIP WG2.8 meeting in 1995 (Aspenäs, Sweden).
dmacqueen at mac.com
Last modified: Fri May 29 15:51:27 PDT 2020