Standard ML


Standard ML

(language)(SML) Originally an attempt by Robin Milner ca. 1984 to unify the dialects ofML, SML has evolved into a robust general-purpose language.Later versions have been maintained by D. B. MacQueen, LalGeorge , and J. H. Reppy at AT&T, and A. W. Appel.

SML is functional, with imperative programming features.It is environment based and strict. It adds to ML thecall-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 systemsupports 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. Itruns on a wide range of architectures. The distribution alsocontains: an extensive library - The Standard ML of New JerseyLibrary, including detailed documentation; Concurrent ML(CML); eXene - an elegant interface to X11 (based onCML); 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.

FTP from ATT.FTP from Suny SB.

Mailing list: sml-request@cs.cmu.edu.

["A Proposal for Standard ML", R. Milner, ACM Symp on LISP andFunctional Prog 1984, pp. 184-197].