Standard ML of New Jersey explained

Standard ML of New Jersey
Paradigms:Multi-paradigm

functional, imperative

Family:ML

Standard ML

Developers:Bell Laboratories,
Princeton University
Lucent Technologies,
Yale University (FLINT Project),
AT&T Research
Typing:strong, static, inferred
Programming Language:Standard ML, C
License:BSD-like[1]
File Extensions:.sml
Influenced By:Standard ML
Influenced:Mythryl

Standard ML of New Jersey (SML/NJ; Standard Meta-Language of New Jersey) is a compiler and integrated development environment for the programming language Standard ML. It is written in Standard ML, except for the runtime system in C language. It was originally developed jointly by Bell Laboratories and Princeton University.[2] It is free and open-source software released under a permissive software license (BSD-like).

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 added top-level structures:[3]

Also, 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.

Since at least 1998,[12] MLton[13] is the standard bootstrapping compiler, and includes some support for Successor ML.

In 2008, work began on HaMLet,[14] a reference implementation of Successor ML written entirely in Standard ML.[15], HaMLet remains the only complete implementation of Successor ML, with added novel features.[16]

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

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

See also

External links

Notes and References

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