The full mathematical description of the functional programming language ML was given in Milner, Tofte, and Harper's Definition of Standard ML. This companion volume explains in depth the meaning, or semantic theory, of ML. Together, the two volumes provide a complete understanding of the most prominent of a new group of functional programming languages that includes Haskell and Scheme.In making the Definition easier to understand, the authors not only explain what ML is, they explain why it is. They present some of the rigorous analysis that supports the Definition including a selection of theorems that express important properties of the language. The Commentary is also a working document that shows the way in which the specialized theory of ML can contribute to broader research on language design and semantics.
ContentsPreface • Executing a Simple Program • Dynamic Semantics for the Core • Dynamic Semantics for the Modules • Static Semantics for the Core • Type Declarations and Principality • Static Semantics for the Modules • Signature Matching • Elaboration of Functors • Admissible Semantic Objects and Proofs • Elaboration of Signature Expressions • Principal Signatures • Appendixes: Proof of Principality • Identifier Status • Solutions to Exercises • Mistakes and Ambiguities