SML programming language
The SML programming language is a modern descendant of the ML programming language used in the LCF theorem-proving project. It is unique among widely used languages in that it has a formal specification, given as an operational semantics in The Definition of Standard ML.
Implementations
Some SML implementations include:
- MLton is a whole-program compiler, meaning that it compiles the entire program at once. It does not support any form of separate compilation. It is known, however, for producing extremely fast code compared to other ML implementations. [1] (http://www.mlton.org)
- Moscow ML is a light-weight implementation, based on the CAML Light runtime engine. It implements the full SML language, including SML Modules, and much of the SML Basis Library. [2] (http://www.dina.kvl.dk/~sestoft/mosml.html)
- Poly/ML is a full implementation of Standard ML. [3] (http://www.polyml.org/)
- Standard ML of New Jersey (abbreviated SML/NJ) is a full compiler, with associated libraries, tools, an interactive shell, and documentation. [4] (http://www.smlnj.org/)
- SML2c is a batch compiler and compiles only module-level declarations (i.e. signatures, structures and functors) into C. Based on SML/NJ version 0.67 and shares front end and most of its run-time system, but does not support SML/NJ style debugging and profiling. Module-level programs that run on SML/NJ can be compiled by sml2c without any changes.
All of the implementations above are open-source and freely available. There are no commercial SML implementations.
See also
- Ocaml
- Extended ML
- EML
- Dependent ML
References
- R. Milner, M. Tofte, R. Harper and D. MacQueen. The Definition of Standard ML (Revised). ISBN 0262631814.
de:SML it:SML hu:SML programozási nyelv