Modern Compiler Implementation in ML: Basic Techniques
Which version of ML should I use?
Why are there different versions of ML?
During the period 1994-96, a consortium of ML implementors
including representatives of the
Standard ML of
New Jersey project, the
Moscow ML
project, and the
Harlequin MLWorks product,
worked together to standardize and greatly improve ML
``standard library'' and operating-system interface functions.
The result is the SML Basis Library, which all three implementations (almost) support.
Over the same period, the designers of ML made some small cleanups
to the language design (deleting more than they added!), resulting
in the
Standard
ML '97 language.
Version 110, the current release of
Standard ML of
New Jersey,
is fully SML'97 compliant.
The Tiger compiler modules
have been tested with this version of ML.
Support software
The Tiger compiler requires the use of ML-Lex (lexical analyzer generator),
ML-Yacc (parser generator), and
the SML/NJ Library
(utility library functions not part of the Standard ML Basis Library);
all of these are part of the
SML/NJ software distribution.
Make sure you use the version of Lex, Yacc, and SML-NJ-Lib that comes
with the version of SML/NJ that you are using.