Standard ML of New Jersey User's Guide

Standard ML of New Jersey (SML/NJ) is a compiler, interactive system, and programming environment for the Standard ML language.


SML/NJ is available for free on the World-Wide Web; follow the installation instructions there.


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.

| SML/NJ Home page |

Send your comments to
Copyright © 1998, Lucent Technologies; Bell Laboratories.