Standard ML of New Jersey
ParadigmMulti-paradigm: functional, imperative
Stable release
110.99.4 Edit this on Wikidata / 1 August 2023; 6 months ago (1 August 2023)
Typing disciplinestrong, static, inferred
LicenseBSD-like license[1]
Filename extensions.sml
Websitewww.smlnj.org
Influenced by
Standard ML
Influenced
Mythryl

Standard ML of New Jersey (SML/NJ; Standard Meta-Language of New Jersey) is a free and open-source compiler and programming environment for the Standard ML programming language. Aside from its runtime system, which is written in C, SML/NJ is written in Standard ML. It was originally developed jointly by Bell Laboratories and Princeton University.[2]

Its name is a reference both to the American state of New Jersey 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:[3]

Additionally, SML/NJ provides some syntactic constructs that are not standard features of SML'97:[3]

Development

Successor ML is a term used to describe the next version of the language. The documents describing it have been extracted from the SML/NJ '97 files and made available as a GitHub repository of TeX documents which the community is expected to collaborate and grow the language.[11] Successor ML features can be enabled using the command-line option -Cparser.succ-ml=true.[12]

Since at least 1998,[13] MLton[14] is the standard bootstrapping compiler, and it has some[15] support for Successor ML.

In 2008, work began on HaMLet,[16] a reference implementation of Successor ML written entirely in Standard ML.[17] As of 2018, HaMLet remains the only complete implementation of Successor ML, with additional novelties.[15]

Since 2015,[18] the evolution of SML/NJ geared towards evolving the Basis library[19] and adding support for the Successor ML definition with the release of version 110.79.[12]

At the end of 2020, 64-bit support was added with the release of version 110.99.[18]

See also

References

  1. ^ "Standard ML of New Jersey License". www.smlnj.org.
  2. ^ "SML/NJ background information". www.smlnj.org. Retrieved 2018-09-05.
  3. ^ a b "SML/NJ Special Features". www.smlnj.org. Retrieved 2018-09-05.
  4. ^ "The SYS_INFO signature". www.smlnj.org. Retrieved 2018-09-05.
  5. ^ "The WEAK signature". www.smlnj.org. Retrieved 2018-09-05.
  6. ^ "The SUSP signature". www.smlnj.org. Retrieved 2018-09-05.
  7. ^ "The INTERNALS signature". www.smlnj.org. Retrieved 2018-09-05.
  8. ^ "The Unsafe structure". www.smlnj.org. Retrieved 2018-09-05.
  9. ^ "The Visible Compiler". www.smlnj.org. Retrieved 2018-09-05.
  10. ^ "SML/NJ Quote/Antiquote". www.smlnj.org. Retrieved 2018-09-05.
  11. ^ "Successor ML Definition". GitHub.
  12. ^ a b "Standard ML of New Jersey version 110.79 NEWS". 2015-10-04.
  13. ^ "MLton 1999-03-19 change notes". GitHub.
  14. ^ "The MLton repository". GitHub.
  15. ^ a b "Three implementation efforts to support Successor ML". GitHub.
  16. ^ Andreas Rossberg. "HaMLet S: To Become Or Not To Become Successor ML" (PDF).
  17. ^ "SML reference interpreter". GitHub.
  18. ^ a b "Standard ML of New Jersey Change Log for v110.99".
  19. ^ "The Standard ML Basis Library".