Introduction to Standard ML

Robert Harper

School of Computer Science

Carnegie Mellon University

Fall Semester, 1997

Copyright 1997 Robert Harper.  All rights reserved.


These notes are intended as a brief introduction to Standard ML (1997 dialect) for the experienced programmer. They are intended as supplementary reading, rather than as a self-standing textbook. For a self-contained treatment of the use of Standard ML, see Lawrence Paulson, ML for the Working Programmer (Second Edition), MIT Press, 1997, or  Jeffrey Ullman, Elements of ML Programming, Prentice-Hall, 1994.

The Definition of Standard ML (Revised) by Robin Milner, Mads Tofte, Robert Harper, and David MacQueen (MIT Press, 1997) constitutes the official definition of the language.   It is supplemented by the Standard ML Basis Library, which provides a collection of commonly-used routines.

There are several implementations of Standard ML available on a variety of platforms.   Standard ML of New Jersey is the most widely used.  Harlequin's MLWorks is a commercial implementation that provides a substantial set of program development and analysis tools. Other implementations include Moscow ML, Poly ML, and MLKitA local guide is available for users of   Standard ML at Carnegie Mellon University.

Concurrent ML is a non-standard extension of Standard ML with primitives for concurrent programming.   It is available as part of the Standard ML of New Jersey compiler.  The MLWorks system also includes primitives for concurrent programming.

These notes are a work in progress.  I plan to make regular updates, so please check back for changes.  The most recent revision was made on Tuesday, November 11, 1997 11:05 AM.   Corrections, comments and suggestions are welcome.

  Core Language ] Modules Language ] Basis Library ]