NIKHIL@XX.LCS.MIT.EDU (Rishiyur S. Nikhil) (12/05/87)
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 dbm%research.att.com@relay.cs.net Rishiyur Nikhil (nikhil@xx.lcs.mit.edu) -------