This is the web page for the Standard ML Family GitHub
project (organization name: SMLFamily). This site is very much “under
construction”, and it replaces the earlier
SourceForge web site for standardml.org (which now redirects to this
page). Contributions, corrections, and suggestions for additional
information are very much welcomed.
Project Description
The Standard ML Family project provides a home for online versions
of various formal definitions of Standard ML, including the
“Definition of Standard ML, Revised” (Standard ML 97).
The site also supports coordination between different
implementations of the Standard ML (SML) programming language by
maintaining common resources such as the documentation for the
Standard ML Basis Library
and standard test suites. The goal is to increase compatibility
and resource sharing between Standard ML implementations.
The site includes a history section devoted to
the history of ML, and of Standard ML in particular. This section will
contain a collection of original source documents relating to the
design of the language.
Definitions of Standard ML
With the permission of MIT Press, we are able to make
The Definition of Standard ML (SML ’90)
and
The Definition of Standard ML, Revised
(SML ’97) available for downloading as pdf files. These are
(currently) formatted for US letter page size. Printed copies
of the SML ’97 definition are available from
MIT Press.
The SML ’90 definition is complete, including the index, but we are still
working on recreating the index for the SML ’97 definition.
The sources to the two editions of The Definition are available on GitHub as follows:
- The Definition of Standard ML
The original by Robin Milner, Mads Tofte, and Robert Harper.
- The Definition of Standard ML, Revised
The 1997 revision by Robin Milner, Mads Tofte, Robert
Harper, and David MacQueen. - SML, The Living
Language (aka Successor ML).Continually evolving version
of The Definition, with corrections and extensions. Derived from the 1990 and 1997 editions.
The Standard ML Basis Library:
- Standard ML Basis Library, by Emden Gansner and John Reppy.
This document is also available in hard copy with additional tutorial material from
Cambridge University Press.
Claudio Russo’s
The Concrete Syntax of Standard ML:
Some valuable critiques of The Definitions:
- Mistakes and Ambiguities
in The Definition of Standard ML, by Stefan Kahrs. - Defects in the
Revised Definition of Standard ML, by Andreas Rossberg.
Machine-checked meta-theory of Standard ML:
- Mechanization of the
Type-Theoretic Definition of Standard ML.Twelf formalization by Karl Crary and Robert Harper of the Harper-Stone Type-Theoretic
Interpretation of Standard ML, together with a complete verification of
type safety for Standard ML.
Language design critiques and reviews:
-
A Critique of Standard
ML by Andrew Appel, Princeton CS-TR-364-92, Nov 1992.
Also published in Journal of Func