Standard ML of New Jersey |
Standard ML of New Jersey (abbreviated SML/NJ) is a compiler and programming environment for Standard ML. Aside from its runtime system, which is written in C, SML/NJ is written in Standard ML. It was developed jointly by Bell Laboratories and Princeton University.
Its name is a reference both to Princeton s home state and to Standard Oil of New Jersey, the famous oil monopoly of the early 20th century.
=Features=
SML/NJ extends the SML 97 Basis Library with several additional top-level structures:
system info - this module provides information about the runtime system, such as the Operating System kind, type and version and whether or not the machine supports multiprocessing.
weak pointers - a weak Pointer is one that is not sufficient to keep an object live. If a weak pointer is pointed to by ordinary pointers then it will remain live, but if it is only pointed to by weak pointers it will be garbage collected.
lazy suspensions - this module implements the suspensions necessary for lazy evaluation (as opposed to eager evaluation).
Compiler internals - SML/NJ provides access to several of the compilers internals, including methods to instantiate and modify the signal table.
unsafe access - these modules provide unsafe access to data structures and runtime-system functions.
compiler modules - SML/NJ also includes a structure that provides control of the ML compiler, which contains substructures for execution profiling, control of compiler error-message printing and warnings, and customizable pretty printing.
=Versions=
The current version of SML/NJ is Version 110, which is available for Windows and Unix. It is free, open source software and is available for download. [http://www.smlnj.org/software.html]
=See also=
Extended ML
Dependent ML
=External link=
[http://www.smlnj.org/ Standard ML of New Jersey]