Standard ML 

Standard ML. R. Milner ca. 1984. Aimed to unify the dialects of ML, has evolved into a robust general-purpose language. Functional, with imperative features. Environment based, strict. Adds to ML the call-by-pattern of Hope, recursive data types, reference types, typed exceptions, and modules. (The "core" language excludes the modules.)

Related languages
HOPE => SML   Derivation of
ML => SML   Evolution of
SML => Amber   Extension of
SML => ANU ML   Implementation
SML => Edinburgh ML   Implementation
SML => Facile   Extension of
SML => Machiavelli   Extension of
SML => Moscow SML   Implementation
SML => Parallel SML   Extension of
SML => Poly   partially based on
SML => SML/NJ   Implementation
SML => The ML Kit   Implementation
SML => Xfun   Evolution of

  • Milner, R. "A Proposal for Standard ML", pp184-197 view details
          in Proceedings of the 1984 ACM Symposium on LISP and functional programming, , August 06-08, 1984, Austin, Texas, view details
  • MacQueen, David "Should ML be Object-Oriented?" pp214-232 view details Abstract: At a fundamental level, functional and object-oriented programming languages are all 'higher-order', in the sense that they support computing with values that are themselves pieces of program code encapsulated with a local environment. In functional languages these 'active' values are functions, while in object-oriented languages they are objects. Both styles of higher-order language claim to provide good support for writing adaptable programs, but functional and object-oriented languages achieve this adaptability in different ways: functional programs rely on parameterisation at the value, type and module level, while object-oriented languages rely primarily on subtyping and implementation inheritance. Here we compare these two approaches, mainly in terms of the features and properties of their type systems, and consider the benefits and disadvantages of unifying (or merging) the two paradigms by adding object-oriented features to ML as a base language. We argue that while some of the simpler aspects of object-oriented languages are compatible with ML, adding a full- edged class-based object system to ML leads to an excessively complex type system and relatively little expressive gain, especially if we aim to preserve that mostly functional style of programming that is a major advantage of ML.

          in Formal Aspects of Computing 13(3-5) July 2002 view details