请输入您要查询的百科知识:

 

词条 Standard ML of New Jersey
释义

  1. Features

  2. Successor ML Features

  3. See also

  4. External links

  5. References

{{Infobox programming language
| name = Standard ML of New Jersey
| logo =
| paradigm = Multi-paradigm: functional, imperative
| year =
| designer =
| latest_release_version = 110.85
| latest_release_date = {{Start date and age|2018|12|21}}[1]
| typing = strong, static, inferred
| influenced_by = Standard ML
| influenced = Mythryl
| website = {{URL|www.smlnj.org}}
| license = BSD-like license[2]
| File extensions = .sml
}}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.[3]

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:[4]

  • System info – the SysInfo structure provides information about the runtime system, such as the operating system kind, type and version and whether or not the machine supports multiprocessing.[5]
  • Weak pointers – the Weak structure provides support for weak pointers.[6]
  • Lazy suspensions – the Susp structure implements the suspensions necessary for lazy evaluation (as opposed to eager evaluation).[7]
  • Compiler internals – the Internals structure provides access to several of the compiler internals, including methods to instantiate and modify the signal table.[8]
  • Unsafe access – the Unsafe structure provides unsafe access to data structures and runtime-system functions.[9]
  • Visible compiler structures – SML/NJ also includes structures that provide access to the ML compiler, which contains substructures for execution profiling, control of compiler error-message printing and warnings, and customizable pretty printing.[10]

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

  • Vector expressions and patterns – SML/NJ allows the creation of vectors with the #[exp0, exp1, ..., expn-1] syntax and allows pattern-matching on them with analogous syntax.
  • Or-patterns – SML/NJ extends the syntax of SML'97 patterns to allow for a matching multiple patterns in a single rule, provided each pattern has the same type, using (apat1 | ... | apatn) => exp .
  • Object language embedding – SML/NJ provides the quote/antiquote syntax that permits the embedding of expressions in an object language's concrete syntax within ML expressions and programs.[11]
  • Higher-order modules – SML/NJ supports the parametrization of functors by allowing functors to be components of structures, in addition to Standard ML's parametric modules in the form of functors.

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

  • Extended ML
  • Dependent ML

External links

  • Standard ML of New Jersey
  • [https://github.com/SMLFamily/Successor-ML/tree/master/definition Successor ML]
  • [https://github.com/SMLFamily/BasisLibrary Standard ML Basis Library]
  • [https://people.mpi-sws.org/~rossberg/hamlet/hamlet-succ-1.3.1S5.pdf Hamlet]

References

1. ^{{Cite web|url=https://www.smlnj.org/dist/working/110.85/HISTORY.html|title=Standard ML of New Jersey Change Log|website=www.smlnj.org|access-date=2019-01-26}}
2. ^{{Cite web|url=http://www.smlnj.org/license.html|title=Standard ML of New Jersey License|website=www.smlnj.org|access-date=2018-09-05}}
3. ^{{Cite web|url=https://www.smlnj.org/smlnj.html|title=SML/NJ background information|website=www.smlnj.org|access-date=2018-09-05}}
4. ^{{Cite web|url=https://www.smlnj.org/doc/features.html|title=SML/NJ Special Features|website=www.smlnj.org|access-date=2018-09-05}}
5. ^{{Cite web|url=https://www.smlnj.org/doc/SMLofNJ/pages/sysinfo.html|title=The SYS_INFO signature|website=www.smlnj.org|access-date=2018-09-05}}
6. ^{{Cite web|url=https://www.smlnj.org/doc/SMLofNJ/pages/weak.html|title=The WEAK signature|website=www.smlnj.org|access-date=2018-09-05}}
7. ^{{Cite web|url=https://www.smlnj.org/doc/SMLofNJ/pages/susp.html|title=The SUSP signature|website=www.smlnj.org|access-date=2018-09-05}}
8. ^{{Cite web|url=https://www.smlnj.org/doc/SMLofNJ/pages/internals.html|title=The INTERNALS signature|website=www.smlnj.org|access-date=2018-09-05}}
9. ^{{Cite web|url=https://www.smlnj.org/doc/SMLofNJ/pages/unsafe.html|title=The Unsafe structure|website=www.smlnj.org|access-date=2018-09-05}}
10. ^{{Cite web|url=https://www.smlnj.org/doc/Compiler/pages/compiler.html|title=The Visible Compiler|website=www.smlnj.org|access-date=2018-09-05}}
11. ^{{Cite web|url=https://www.smlnj.org/doc/quote.html|title=SML/NJ Quote/Antiquote|website=www.smlnj.org|access-date=2018-09-05}}

7 : Procedural programming languages|ML programming language family|Bell Labs|Princeton University|Free compilers and interpreters|Free computer libraries|Programming languages created in the 20th century

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/9/20 10:58:18