Standard ML

Also found in: Wikipedia.

Standard ML

(SML) Originally an attempt by Robin Milner <> 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 <>, 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 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.


FTP from ATT. FTP from Suny SB.

Mailing list:

["A Proposal for Standard ML", R. Milner, ACM Symp on LISP and Functional Prog 1984, pp. 184-197].
This article is provided by FOLDOC - Free Online Dictionary of Computing (
References in periodicals archive ?
A new Inland Manufacturing standard Ml Carbine will hold two to three inches at 100 yards depending on ammunition.
Set off in comfort mode, it feels like a standard ML, though a loud one.
CDKML's refined classifier showed the best performance in the fall-detection domain where it considerably outperformed all five ML algorithms, the posture-recognition domain followed, while it did not show improvement in comparison to standard ML in the behavioral-cloning domain.
Conclusion: Treatment of pressed mistletoe juice with N-acetyl-galactosamine prior to lectin determination avoids or at least strongly reduces the interference of ML II and III in standard ML I assays (ELLA) and thus provides a simple method to evaluate the content of ML 1 more exactly.
1986; Kranz 1987] compiler generates very fast code by having six different closure allocation strategies for different kinds of functions; the MIT scheme compiler [Rozas 1984; Hanson 1990] implements tail-recursive procedure calls as efficiently as most explicit iteration constructs by using special closure representations and calling conventions; the Standard ML of New Jersey compiler (SML/NJ) [Appel and Macqueen 1991; Appel and Shao 1992] represents the return-continuation closure using a set of callee-save registers to achieve closure sharing and fast access to free variable bindings.
Consider the program in Figure 2 written in Standard ML (SML) [Milner et al.
A standard Ml bolt requires machining to clear the feed lips of the box magazine.
The example of Standard ML demonstrates that for other languages this is not necessarily so.
In what follows we discuss how this can be done for programs written in Standard ML. Section 2 gives an intuition for why some of ML's language features make dependency analysis difficult.
To avoid these problems we control the full power of explicit symbol table manipulations by providing what amounts to a programming language extension: Standard ML becomes SML+CM.
CM is our compilation manager for Standard ML of New Jersey (SML/NJ for short) [Appel and MacQueen 1991].
The algorithm is the result of several years of experiments with region inference algorithms in the ML Kit, a compiler from Standard ML to assembly language.

Full browser ?