Standard ML
<language> (SML) Originally an attempt by Robin Milner <
[email protected]> ca. 1984 to unify the dialects of
ML, SML has evolved into a robust general-purpose language. Later versions have been maintained by D. B. MacQueen, Lal George <
[email protected]>, and J. H. Reppy <
[email protected]> at AT&T, and A. W. Appel <
[email protected]>.
SML is
functional, with imperative features.
It is environment based and
strict.
It adds to ML the call-by-pattern of
Hope, recursive data types, reference types, typed
exceptions, and
modules.
(The "core" language excludes the modules).
Standard ML is
polymorphically typed and its module system supports flexible yet secure large-scale programming.
Standard ML of New Jersey is an optimising native-code compiler for Standard ML that is written in Standard ML.
It runs on a wide range of architectures. The distribution also contains: an extensive library - The Standard ML of New Jersey Library, including detailed documentation;
Concurrent ML (CML); eXene - an elegant interface to X11 (based on
CML); SourceGroup - a separate compilation and "
make" facility.
Implementations:
SML/NJ,
POPLOG ML,
Poly/ML,
Edinburgh SML,
ANU ML,
Micro ML,
lazy sml2c.
sml2c compiles to
C.
See also
ML Kit.
Version 0.93 runs on
68000,
SPARC,
MIPS, HPPA,
RS/6000, Intel 386,
Intel 486 and
Macintosh.
Manual (http://www.dcs.napier.ac.uk/course-notes/sml/manual.html).
FTP from ATT (ftp://research.att.com/dist/ml/). FTP from Suny SB (ftp://sbcs.sunysb.edu/).
Mailing list:
[email protected].
["A Proposal for Standard ML", R. Milner, ACM Symp on LISP and Functional Prog 1984, pp. 184-197].