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 original by Robin Milner, Mads Tofte, and Robert Harper.
The 1997 revision by Robin Milner, Mads Tofte, Robert Harper, and David MacQueen.
Continually evolving version of The Definition, with corrections and extensions. Derived from the 1990 and 1997 editions.
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.
Name: sml-implementersThe Successor ML wiki comprises a substantial discussion of suggestions for improvement of Standard ML. Further contributions are welcome!
A free, open-source implementation of SML '97 that generates native code for a broad range of platforms.
With Version 2.0, now implements SML '97 (including modules) with some extensions.
Implements an SML '97 subset, compiling to the JVM with extensions for working with
[MLj has moved from Persimmon IT to Edinburgh.]
Version 3 implements SML '97, uses region analysis for memory management.
Compile and run SML programs in the browser, based on SMLtoJs.
A whole-program optimizing SML Compiler. (SML '97)
Formerly a product of Abstract, Inc., Poly/ML is now is now available as a free, open source implementation. Version 4 implements SML '97.
Now available as free software (SML '90).
A certifying compiler for Standard ML based on typed intermediate languages.
Formerly a product of Harlequin, Ltd, ML Works is now a freely available, open-source system owned by Ravenbrook.
A faithful interpreter for SML'97, written entirely in SML, as a direct translation of the formal language definition.
SML# is a new programming language in the Standard ML family being developed at RIEC (Research Institute of Electrical Communication), Tohoku University . Its design goal is to provide practically important extensions while maintaining the compatibility of the Definition of Standard ML.
An extension of SML with rich support for concurrent and distributed programming, e.g., futures, threads, higher-order marshalling (including code), and type-safe dynamic module import & export.
Manticore is a high-level parallel programming language aimed at general-purpose applications running on multi-core processors. Manticore supports parallelism at multiple levels: explicit concurrency and coarse-grain parallelism via CML-style constructs and fine-grain parallelism via various light-weight notations, such as parallel tuple expressions and NESL/Nepal-style parallel array comprehensions.
The Standard ML Smackage repository is a resource of community contributed code.
The Standard ML History pages are the beginnings of a collection of documents related to the history of the development of Standard ML. This subsite is just beginning to be constructed.