Standard ML of New Jersey
Paradigm | multi-paradigm: functional, imperative |
---|---|
Stable release | 110.79 / October 4, 2015[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
- ↑ http://www.smlnj.org/dist/working/110.79/110.79-README.html
- ↑ Standard ML of New Jersey License. Smlnj.org. Retrieved on 2013-08-11.
This article is issued from Wikipedia - version of the Tuesday, December 22, 2015. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.