EML(ID:1140/eml001)

ML Specification language 


for Extended ML.

SML extended to include logically defined and institution independant modularity. A modular Prolog has been developed on its basis.

A language for formally specifying SML programs.


Don Sannella, Edinburgh. 1985

Algebraic specification meets functional programming.

A framework for specification and formal development of Standard ML (SML) programs. EML specifications look just like SML programs except that axioms are allowed in signatures and in place of code in structures and functors. Some EML specifications are executable, since SML function definitions are just axioms of a certain special form. This makes EML a "wide-spectrum" language which can be used to express every stage in the development of a SML program from the initial high-level specification to the final program itself and including intermediate stages in which specification and program are intermingled.

Places
Structures:
Related languages
ML => EML   Evolution of
ML => EML   Extension of
EML => Extended Prolog   Based on
EML => SPECTRAL   Incorporated some features of

References:
  • Sannella, D. et al "Program Specification and Development in Standard ML" view details
          in [ACM SIGACT-SIGPLAN] Conference Record of the 12th ACM Symposium on Principles of Programming Languages, New Orleans, Jan. 1985. (POPL '85) view details
  • Sannella D. and Tarlecki. A. "Extended ML: an institution-independent framework for formal program development". Proc. Workshop on Category Theory and Computer Programming, Guildford, 1985. Springer LNCS 240, 364-389 (1986). view details ps
          in [ACM SIGACT-SIGPLAN] Conference Record of the 12th ACM Symposium on Principles of Programming Languages, New Orleans, Jan. 1985. (POPL '85) view details
  • Sannella. D. "Formal specification of ML programs" Report ECS-LFCS-86-15, Laboratory for Foundations of Computer Science, University of Edinburgh (1986). view details External link: Online
          in [ACM SIGACT-SIGPLAN] Conference Record of the 12th ACM Symposium on Principles of Programming Languages, New Orleans, Jan. 1985. (POPL '85) view details
  • Sannella D. and A. Tarlecki. Toward formal development of ML programs: foundations and methodology. Report ECS-LFCS-89-71, Laboratory for Foundations of Computer Science, University of Edinburgh (1989). view details External link: Online
          in [ACM SIGACT-SIGPLAN] Conference Record of the 12th ACM Symposium on Principles of Programming Languages, New Orleans, Jan. 1985. (POPL '85) view details
  • "Formal Program Development in Extended ML for the Working Programmer", D. Sannella, Proc 3rd BCS/FACS Workshop on Refinement", Springer 1990. view details
          in [ACM SIGACT-SIGPLAN] Conference Record of the 12th ACM Symposium on Principles of Programming Languages, New Orleans, Jan. 1985. (POPL '85) view details
  • Sannella, D. Formal program development in Extended ML for the working programmer. Proc. 3rd BCS/FACS Workshop on Refinement, Hursley Park, 1990. view details
          in [ACM SIGACT-SIGPLAN] Conference Record of the 12th ACM Symposium on Principles of Programming Languages, New Orleans, Jan. 1985. (POPL '85) view details
  • Sannella, D. and A. Tarlecki. Extended ML: past, present and future. Proc. 7th Workshop on Specification of Abstract Data Types, Wusterhausen, 1990. Springer LNCS 534, 297-322 (1991). view details ps
          in [ACM SIGACT-SIGPLAN] Conference Record of the 12th ACM Symposium on Principles of Programming Languages, New Orleans, Jan. 1985. (POPL '85) view details
  • Kahrs, S. ; D. Sannella and A. Tarlecki. The semantics of Extended ML: a gentle introduction. Proc. Intl. Workshop on Semantics of Specification Languages, Utrecht. Springer Workshops in Computing (1993). view details ps
          in [ACM SIGACT-SIGPLAN] Conference Record of the 12th ACM Symposium on Principles of Programming Languages, New Orleans, Jan. 1985. (POPL '85) view details
  • Kahrs, S. ; D. Sannella and A. Tarlecki. Interfaces and Extended ML. view details ps
          in SIGPLAN Notices 29(08) August 1994 ACM Workshop on Interface Definition Languages, Portland, Oregon. view details
  • Kahrs, S. ; D. Sannella and A. Tarlecki. The definition of Extended ML. Report ECS-LFCS-94-300, Laboratory for Foundations of Computer Science, University of Edinburgh (1994). view details
          in SIGPLAN Notices 29(08) August 1994 ACM Workshop on Interface Definition Languages, Portland, Oregon. view details
  • Kahrs. S. On the static analysis of Extended ML. Research note, Laboratory for Foundations of Computer Science, University of Edinburgh (1995). view details Internal error
    SAYFLD: Field name [txtURL] not in current recordsetsaying value...

          in SIGPLAN Notices 29(08) August 1994 ACM Workshop on Interface Definition Languages, Portland, Oregon.
    view details
  • Anyone who wants to try reading this should start with: The definition of Extended ML: a gentle introduction. Theoretical Computer Science 173:445-484 (1997). view details
          in SIGPLAN Notices 29(08) August 1994 ACM Workshop on Interface Definition Languages, Portland, Oregon. view details
  • Cerioli, Maura; Gogolla, Martin; Kirchner, Helene; Bruckner, Bernd Krieg; Qian, Zhenyu; Wolf, Markus "Algebraic System Specification and Development - Survey and Annotated Bibliography" Second Edition Compass Group Bremen 1997 view details Abstract: Methods for the algebraic specification of abstract data types were proposed in the early seventies in the USA and Canada and became a major research issue in Europe shortly afterwards. Since then the algebraic approach has come to play a central role in research on formal program specification and development, as its range of applications was extended to the specification of complete software systems, to the formal description of the program development process, and to the uniform definition of syntax and semantics of programming languages. Today this approach extends beyond just software to the development of integrated hardware and software systems. These flourishing activities in the area of algebraic specifications have led to an abundance of approaches, theories and concepts, which have universal algebra, category theory and logic as a common mathematical basis.
    The present volume is an annotated bibliography which attempts to provide an up-to-date overview of past and present work on algebraic specification. No attempt is made to provide a coherent introduction to the topic for beginners the intention is rather to provide a guide to the current literature for researchers in algebraic specification and neighbouring fields. Some indications of how the different approaches are related are included. ps Extract: Extended ML
    Extended ML
    The long-term goal of work on Extended ML is to provide a practical framework for formal development of Standard ML programs together with an integrated suite of computer-based specification and development support tools and complete mathematical foundations to substantiate claims of correctness. The complete formal definition of the Extended ML language [533] constitutes an important milestone in this programme, necessary to provide a basis for further research on foundations and tools. One of the key issues that had to be resolved was the design of a logic suitable for describing properties of Standard ML programs, taking into account features like recursive type and function definitions, exceptions, polymorphism, and non-termination. A number of errors in the Standard ML semantics [679] have been discovered in the course of this work [526]. Work has begun on rules for proving theorems about EML specifications, to be used in verifying correctness conditions that arise in the course of formal development. Research has so far concentrated on equality reasoning [530] and quantifier rules.
    The length and requisite formality of the definition of Extended ML renders it rather difficult to penetrate. Accordingly, [532, 534] provides an informal overview of the definition, explaining most of the main issues involved and justifying some of the choices taken.
    Extract: Extended ML
    Extended ML is not tailored to any particular logic. It adopts the modularization mechanisms of the Standard ML programming language, and its semantics is largely expressed in terms of the primitive specification-building operations of the ASL kernel specification language. Extended ML is a wide-spectrum language in the sense of CIP-L, as Standard ML function definitions are just axioms of a certain special (and executable) form. Extract:
    Reusability
    The demand for reusability originates from economic considerations and attempts towards standardization. Rather than always starting from scratch, the use of existing components is cheaper and also less error-prone. A central problem for the identification and the correct use of reusable components is the abstract description of such components. A formal specification is the only form of description that can serve as a basis for a correctness proof; it can be processed automatically and it establishes a degree of confidence in the functionality of the component that is particularly important if a component has to be modified before being reused.
    Goguen [404] proposes the algebraic specification language OBJ as well-suited for the design of reusable software systems. A component's interface is specified as an abstract data type and may be parameterized by other components. Combination of components is possible by instantiation using appropriate fitting morphisms. A similar approach is used in Extended ML [836], [848].
    In ACT TWO [315] components are modules, which consist of two interface specifications, i.e. an export specification and an import specification, and a body specification which implements the export specification in terms of the import specification. Similarly, in LARCH [445], a component consists of a pair, an "abstract" interface specification and an implementation. Here the implementation is written in a conventional programming language. A similar distinction between a requirement and a design specification is made in PAnndA-S, the language of the PROSPECTRA project [138], based on the notion of visible and private interface in Ada. Ada bodies are generated semi-automatically by transformation.
    In the approach of [655] a component consists of four parts at four different levels of abstraction: a requirement specification, a design specification, a source program and object code. Components are written in a so-called wide spectrum language which provides facilities for system design and software development at many levels of abstraction. Matsumoto uses Ada, which has as a consequence that the requirement specification is merely an informal description. CIP-L [54] and COLD [341] are two languages which include algebraic specifications as well as predicative and imperative language styles in one coherent framework and therefore are better suited for such an approach.
    In the object-oriented approach of [675] a reusable component is represented by a graph of object-oriented programs, each node of which stands for one level of abstraction in the description of the software. In the approach of the ESPRIT-project DRAGON [945], a reusable component consists of a tree of algebraic specifications, where similarly to [675], each node of the tree is an instance of a certain level of an abstraction of the program with the root being the most "abstract" formal specification and the leaves representing the "concrete" implementations. A methodology for reusing components is described in [947].

          in SIGPLAN Notices 29(08) August 1994 ACM Workshop on Interface Definition Languages, Portland, Oregon. view details
  • Kahrs, S. ; D. Sannella and A. Tarlecki. The definition of Extended ML: a gentle introduction. Theoretical Computer Science 173:445-484 (1997). view details ps
          in SIGPLAN Notices 29(08) August 1994 ACM Workshop on Interface Definition Languages, Portland, Oregon. view details
  • Kahrs, S. and Sannella, D. "Reflections on the design of a specification language" pp154-170 view details ps
          in Proc. Intl. Colloq. on Fundamental Approaches to Software Engineering, ETAPS'98, Lisbon. Springer LNCS 1382, 1998 view details
  • D. Sannella and A. Tarlecki. "Algebraic methods for specification and formal development of programs" view details pdf
          in ACM Computing Surveys 31(3) 1999 view details
    Resources
    • EML home page
      external link
    • The EML Kit
      external link
    • A third-year undergraduate course in Functional Programming and Specification. This is a self-contained introduction to programming in SML and specification in EML.
      external link