Standard ML of New Jersey
Paradigm | multi-paradigm: functional, imperative |
---|---|
Stable release |
110.81
/ May 1, 2017[1] |
Typing discipline | strong, static, inferred |
License | BSD-like license[2] |
Website |
www |
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.
Successor ML Features
with the 110.81 release, the evolution of SML/NJ is geared towards evolving the Standard ML Basis library and supporting Successor ML features.
In the current release, the Successor ML features can be enabled using the command-line option -Cparser.succ-ml=true
The Successor ML documents have been extracted from the SML/NJ '97 tex files and made available as a github repository of tex documents which the community is expected to collaborate and grow the language.
In addition, HaMLet has a complete implementation of Successor ML features. The practical knowledge so gained, is being incorporated in SML/NJ as it evolves through its releases.
See also
External links
References
- ↑ http://www.smlnj.org/dist/working/110.81/110.81-README.html
- ↑ Standard ML of New Jersey License. Smlnj.org. Retrieved on 2013-08-11.