Path: utzoo!attcan!uunet!ncrlnk!ncrcae!hubcap!gatech!cwjcc!tut.cis.ohio-state.edu!rutgers!cmcl2!lanl!dor From: dor@lanl.gov (David Rich) Newsgroups: comp.emacs Subject: Re: Major mode for editing and running (Standard) ML. (Code incl.) Summary: Standard ML is... (with Reference, sort of) Message-ID: <7300@lanl.gov> Date: 16 Dec 88 20:52:10 GMT References: <1355@ksuvax1.cis.ksu.edu> <33594@bbn.COM> Organization: Los Alamos National Laboratory Lines: 65 In article <33594@bbn.COM>, jr@bbn.com (John Robinson) writes: > > Could someone kindly explain what ML is? Is it mock-lisp, or > MAC-lisp, or muddle, or something un-lisp? > This came off the Net a while back... Hope it helps! ------------------------------------------------------------------------- The Programming Language Standard ML The programming language Standard ML has evolved over fourteen years. It began as ML, a language for programming proof systems; since then its design has been extended and refined to make it a truly general purpose language. Many researchers and users have contributed to this work, which has been coordinated at Edinburgh University. The design and the formal definition have proceeded hand-in-hand, and a document which defines the language completely, syntax and semantics, is now available: The Definition of Standard ML Version 2 by Robert Harper, Robin Milner and Mads Tofte. For a copy of the Definition, please write to Dorothy McKie, Department of Computer Science, University of Edinburgh, The King's Buildings, Edinburgh EH9 3JZ, U.K., and ask for report ECS-LFCS-88-62. The price is 5.00 pounds, payable in advance. (Cheques should be made payable to Edinburgh University.) Standard ML consists of a Core Language and a Modules Language. The Core is predominantly a functional programming language although imperative language features are provided as well. Functions are values that can be passed as arguments to functions and returned as results. The user can define data types and abstract types and well-typing is decidable at compile time using the polymorphic type discipline which allows, for instance, a function to be applied to values of different types. The Modules are intended for ``programming in the large.'' They allow the programmer to collect together Core Language declarations into units called STRUCTURES. Structures have ``types'', called SIGNATURES, and a type discipline at the Modules level ensures that structures are put together in a consistent way. There are currently two implementations of Standard ML which are known to deal with the full language. They are by David MacQueen and his colleagues at AT&T Bell Laboratories, New Jersey, based upon the experimental implementation at Edinburgh University, and by David Matthews at Cambridge University, distributed commercially by Imperial Software Technology. Other currently active implementations are by Michael Hedlund at the Rutherford-Appleton Laboratory, by Robert Duncan and Simon Nichols in Aaron sloman's group at the University of Sussex and by Malcolm Newey and his group at the Australian National University. It is planned not to produce further versions of the Definition for at least a couple of years. We hope that the Definition will be used wherever the language is implemented and taught. Robert Harper Robin Milner Mads Tofte 22 September 1988 ----------------------------------------------------------------------- --Dave