Misplaced Pages

Standard ML: Difference between revisions

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Browse history interactively← Previous editNext edit →Content deleted Content addedVisualWikitext
Revision as of 19:12, 16 May 2005 editThue (talk | contribs)Extended confirmed users19,432 editsm write out title, link moscow ML← Previous edit Revision as of 14:23, 14 June 2005 edit undo137.205.192.27 (talk)No edit summaryNext edit →
Line 14: Line 14:


* SML2c is a batch compiler and compiles only module-level declarations (i.e. signatures, structures and functors) into ]. 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. * SML2c is a batch compiler and compiles only module-level declarations (i.e. signatures, structures and functors) into ]. 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.

* ] Is an ML implementation based partly on ]


All of the implementations above are ] and freely available. There are no commercial SML implementations. All of the implementations above are ] and freely available. There are no commercial SML implementations.

Revision as of 14:23, 14 June 2005

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 optimizing compiler that produces extremely fast code compared to other ML implementations.
  • 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.
  • Poly/ML is a full implementation of Standard ML.
  • Standard ML of New Jersey (abbreviated SML/NJ) is a full compiler, with associated libraries, tools, an interactive shell, and documentation.
  • 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.
  • F# Is an ML implementation based partly on Ocaml

All of the implementations above are open-source and freely available. There are no commercial SML implementations.

See also

References

  • R. Milner, M. Tofte, R. Harper and D. MacQueen. The Definition of Standard ML (Revised). ISBN 0262631814.
Categories: