[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ML implementations

There are several implementations of ML in existence, differing in syntax
and semantics.  I can name at least the following:

Edinburgh LCF: the ``original'' ML, circa late 1970's.  Implemented in
Lisp, I believe, running on Dec-10s.

Unix ML: implemented by Luca Cardelli, Edinburgh, Bell Labs, and now
with DEC.  Circa 1983.  Syntax substantally influenced by the language
HOPE (Burstall and MacQueen). Compiles to FAM code (Luca's Functional
Abstract Machine) and thence to Vax native code.

LML: ``lazy ML''.  Chalmers, Goteborg, Sweden (Tom Johnsson, Lennart
Augustsson, et. al.)  Circa early 80's through today.  LCF-like
syntax. No side-effects. Normal-order semantics.  Compiles to abstract
machine, and then to Vax code (I think). They distribute it.

ML on Poly: David Mathews, Cambridge U.  I don't know much about this
at all, except that it is implemented in the language Poly (Mathews'
language), incorporates persistence, and was in existence by 1985.

CAML: ``ML on the Categorical Abstract Machine''.  Pierre Curien, et.
al., Univ of Paris.  Circa 1986 through today.  Subset of SML.
Compiles into CAM code, which I think is then translated into code for
the abstract machine developed by the ``Le Lisp'' folks.

And, perhaps, others.  Apologies for omissions/inaccuracies in the
above list.

Beginning about 3-4 years ago, there was a major trans-Atlantic effort
to standardize ML.  The result was SML: ``Standard ML''.  Over the
last year or so, Dave MacQueen has been leading an effort at ATT Bell
Labs Murray Hill to implement a full SML compiler, written in SML
itself.  This Monday (Nov 30), I learned from Dave that the compiler
is now available in beta-test, with sources, under license from ATT.
They're not trying to make money on it, so it's available cheap.  It
runs on Vax/Unix at least, and maybe other machines.  For details,
Dave can be contacted at


Rishiyur Nikhil  (nikhil@xx.lcs.mit.edu)