[comp.lang.misc] The Definition of Standard ML.

mads@lfcs.ed.ac.uk (Mads Tofte (LFCS)) (10/10/88)

            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

aarons@cvaxa.sussex.ac.uk (Aaron Sloman) (11/19/88)

A belated response (addition) to a September posting:

>From: mads@lfcs.ed.ac.uk (Mads Tofte (LFCS))
>Newsgroups: comp.lang.misc
>Subject: The Definition of Standard ML.
>Message-ID: <829@etive.ed.ac.uk>

>            The Programming Language Standard ML
        ......
> 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.
        .......
>  Robert Harper      Robin Milner            Mads Tofte

PML, the Sussex University version of ML (currently compatible with
Standard ML Version 1, with some extensions for mixed language
programming) is part of the Poplog development environment which also
includes Common Lisp, Prolog and Pop-11, an integrated screen editor,
window manager, etc. PML provides access to the other facilities in
Poplog.

PML has been implemented as one of several "front end" incremental
compilers in Poplog, so it automatically becomes available along with
the other languages, on any machine to which Poplog is ported. All
the languages are fully compiled to machine code.

Poplog has recently been ported to Sequent Symmetry Sun-386i, and Sun-4.

Ports to other 80386-based machines are expected to follow. (The
Sun-386i port took under two weeks.)

It previously ran on VAXen(VMS/Unix), Sun2, Sun3, HP 9000/300 series,
Apollo with BSd Unix, Orion 1/05 (Clipper + unix).

Poplog ML is available on all of these machines, but requires a poplog
licence.

Although it does not (yet) have the latest extensions to ML it
is being used for teaching ML, as it provides convenient online
"teach" "help" and library facilities all accessible via the editor.

Poplog is distributed commercially by SD-Scicon, but massive discounts
are available for educational sites (direct from Sussex in the case
of UK sites).

Aaron Sloman,
School of Cognitive and Computing Sciences,
Univ of Sussex, Brighton, BN1 9QN, England
    ARPANET : aarons%uk.ac.sussex.cvaxa@nss.cs.ucl.ac.uk
    JANET     aarons@cvaxa.sussex.ac.uk
    BITNET:   aarons%uk.ac.sussex.cvaxa@uk.ac
    UUCP:     ...mcvax!ukc!cvaxa!aarons
            or aarons@cvaxa.uucp

Phone:  University +(44)-(0)273-678294  (Direct line. Diverts to secretary)