Standard ML of New Jersey

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
Standard ML of New Jersey
Paradigm multi-paradigm: functional, imperative
Stable release 110.79 / October 4, 2015; 8 years ago (2015-10-04)[1]
Typing discipline strong, static, inferred
License BSD-like license[2]
Website http://www.smlnj.org/
Influenced by
Standard ML
Influenced
Mythryl

Standard ML of New Jersey (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 the state in which Princeton and Bell Labs are located 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 alive. If a heap value is referenced via ordinary pointers then it will remain alive, but if it is only referenced via weak pointers then 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 compiler 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.

See also

External links

Footnotes

  1. http://www.smlnj.org/dist/working/110.79/110.79-README.html
  2. Standard ML of New Jersey License. Smlnj.org. Retrieved on 2013-08-11.