Standard ML of New Jersey (SML/NJ) is a compiler, interactive system, and programming environment for the Standard ML language.
Installation
SML/NJ is available for free on the World-Wide Web; follow the installation instructions there.Documentation
SML/NJ is described by the following documents:
- The ML Programming Language
- Several books, tutorials, and FAQs on the Standard ML programming language are available.
- The SML/NJ Interactive System
- How to get started with sml, how to compile and run programs.
- The Standard ML Basis Library
- This describes the "library" functions and interfaces that are part of the ML standard. This includes modules for I/O, operating-system interface, arithmetic on integers, reals, and words (unsigned integers), mathematical functions, operations on strings and substrings, and so on.
- Compilation Manager
- The SML/NJ compilation manager CM organizes and optimizes the compilation process. CM calculates and caches the dependence graph between modules. When a module has been edited and is recompiled, CM compares the export type-signature of the new module to that of the old, to minimize the number of modules that are recompiled. ( HTML or Postscript)
- The Standard ML of New Jersey Library
- The SML/NJ Library contains library and utility functions that are not part of the standard Standard. The SML/NJ library includes modules for binary search trees, adjustable arrays, and other useful data structures.
- Special features of SML/NJ
- Standard ML of New Jersey supports some extensions to the Standard ML language, such as first-class continuations, higher-order functors, and so on.
- The SMLofNJ structure
- This structure contains runtime-system interface and operating-system interface functions that are not part of the international standard.
- The Compiler structure
- This structure contains user-settable flags to control the operation of the compiler and interactive system, and also interfaces to individual phases of the SML/NJ compiler.
- Programming Tools
- ML-Lex lexical-analyzer generator.
ML-Yacc parser generator.- SML '97 Conversion Guide
- The Standard ML '97 language is almost, but not quite, compatible with the 1990 definition supported by earlier versions of SML/NJ; the conversion guide explains the differents, and gives examples of how to upgrade existing SML'90 programs.
- SML/NJ Error Messages
- An explanation of the error messages printed by the SML/NJ compiler.
Downloading the Documentation
The directory tree of the SML/NJ web page documentation is available for downloading as a compressed tar file that can be installed on a local machine for faster access. The Basis documentation pages are also available as a gzipped tar file. If you install both the SML/NJ web pages and the Basis web pages locally, you should connect them by replacing the smlnj/basis directory with (a symbolic link to) the main Basis directory.