The Definition of Extended ML: A Gentle Introduction

Abstract Extended ML (EML) is a framework for the formal development of modular Standard ML (SML) software systems. Development commences with a specification of the behaviour required and proceeds via a sequence of partial solutions until a complete solution, an executable SML program, is obtained. All stages in this development process are expressed in the EML language, an extension of SML with axioms for describing properties of module components. This is an overview of the formal definition of the EML language. To complement the full technical details presented elsewhere, it provides an informal explanation of the main ideas, gives the rationale for certain design decisions, and outlines some of the technical issues involved. EML is unusual in being built around a “real” programming language having a syntax and semantics formally defined. Interesting and complex problems arise both from the nature of this relationship and from interactions between the features of the language.

[1]  José Meseguer,et al.  Universal Realization, Persistent Interconnection and Implementation of Abstract Modules , 1982, ICALP.

[2]  Mark Lillibridge,et al.  A type-theoretic approach to higher-order modules with sharing , 1994, POPL '94.

[3]  P. J. Landin The Mechanical Evaluation of Expressions , 1964, Comput. J..

[4]  Donald Sannella,et al.  Toward Formal Development of ML Programs: Foundations and Methodology (Extended Abstract) , 1989, TAPSOFT, Vol.2.

[5]  Berthold Hoffmann,et al.  Program Development by Specification and Transformation , 1993, Lecture Notes in Computer Science.

[6]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[7]  D. C. Luckham ANNA, a language for annotating Ada programs: reference manual , 1987 .

[8]  M. Tofte Operational Semantics and Polymorphic Type Inference , 1988 .

[9]  Robin Milner,et al.  Commentary on standard ML , 1990 .

[10]  Jorge Farres-Casals Verification in ASL and related specification languages , 1992 .

[11]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[12]  Donald Sannella,et al.  On Observational Equivalence and Algebraic Specification , 1987, J. Comput. Syst. Sci..

[13]  Donald Sannella Formal program development in Extended ML for the working programmer , 1990 .

[14]  Donald Sannella,et al.  Extended ML: An Institution-Independent Framework for Formal Program Development , 1985, ADT.

[15]  Andrew M. Pitts,et al.  Observable Properties of Higher Order Functions that Dynamically Create Local Names, or What's new? , 1993, MFCS.

[16]  Xavier Leroy,et al.  Manifest types, modules, and separate compilation , 1994, POPL '94.

[17]  Tom Melham,et al.  Higher Order Logic Theorem Proving and Its Applications , 1994, Lecture Notes in Computer Science.

[18]  David B. MacQueen Modules for standard ML , 1984, LFP '84.

[19]  J. Girard,et al.  Proofs and types , 1989 .

[20]  Oliver Schoett,et al.  Data abstraction and the correctness of modular programming , 1986 .

[21]  Gilles Kahn,et al.  Natural Semantics , 1987, STACS.

[22]  John C. Mitchell,et al.  Type Systems for Programming Languages , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[23]  Robert S. Boyer,et al.  The Correctness Problem in Computer Science , 1982 .

[24]  Donald Sannella,et al.  The Semantics of Extended ML: A Gentle Introduction , 1993, Semantics of Specification Languages.

[25]  Donald Sannella,et al.  Extended ML: Past, Present, and Future , 1990, ADT.

[26]  Donald Sannella,et al.  Towards Formal Development of Programs from Algebraic Specifications: Model-Theoretic Foundations , 1992, ICALP.

[27]  Friedrich Ludwig Bauer,et al.  The wide spectrum language CIP-L , 1985 .

[28]  Savi Maharaj,et al.  Studying the ML Module System in HOL , 1995, Comput. J..

[29]  Martin Hofmann,et al.  On Behavioural Abstraction and Behavioural Satisfaction in Higher-Order Logic , 1995, Theor. Comput. Sci..

[30]  Friedrich L. Bauer,et al.  The Munich Project CIP: Volume I: The Wide Spectrum Language CIP-L , 1985 .

[31]  Martin Wirsing,et al.  Behavioural and Abstractor Specifications , 1995, Sci. Comput. Program..

[32]  Martin Wirsing,et al.  Characterizing Behavioural Semantics and Abstractor Semantics , 1994, ESOP.

[33]  J. Van Leeuwen,et al.  Handbook of theoretical computer science - Part A: Algorithms and complexity; Part B: Formal models and semantics , 1990 .

[34]  Jeannette M. Wing,et al.  Thoughts on a Larch/ML and a New Application for LP , 1992, Larch.

[35]  Stefan Kahrs,et al.  Mistakes and Ambiguities in the definition of Standard ML , 1993 .

[36]  Donald Sannella,et al.  On Observational Equivalence and Algebraic Specification , 1985, TAPSOFT, Vol.1.

[37]  Martin Hofmann,et al.  On Behavioral Abstraction and Behavioural Satisfaction in Higher-Order Logic , 1995, TAPSOFT.

[38]  Lawrence Charles Paulson,et al.  ML for the working programmer , 1991 .

[39]  Savi Maharaj,et al.  Studying the ML Module System in Hol , 1994, TPHOLs.

[40]  Robin Milner,et al.  Definition of standard ML , 1990 .

[41]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[42]  James J. Horning,et al.  Report on the Larch Shared Language , 1986, Sci. Comput. Program..

[43]  Andrew W. Appel,et al.  Standard ML of New Jersey , 1991, PLILP.

[44]  Michel Bidoit,et al.  Algebraic System Specification and Development: A Survey and Annotated Bibliography , 1991 .

[45]  Donald Sannella,et al.  The definition of Extended ML , 1994 .

[46]  Andrzej Tarlecki,et al.  Modules for an Model-Oriented Specification Language: A Proposal for MetaSoft , 1992, ESOP.