Mind the gap! Abstract versus concrete models of specifications

  • Donald Sannella
  • Andrzej Tarlecki
Invited Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1113)


In the theory of algebraic specifications, many-sorted algebras are used to model programs: the representation of data is arbitrary and operations are modelled as ordinary functions. The theory that underlies the formal development of programs from specifications takes advantage of the many useful properties that these models enjoy.

The models that underlie the semantics of programming languages are different. For example, the semantics of Standard ML uses rather concrete models, where data values are represented as closed constructor terms and functions are represented as “closures”. The properties of these models are quite different from those of many-sorted algebras.

This discrepancy brings into question the applicability of the theory of specification and formal program development in the context of a concrete programming language, as has been attempted in the Extended ML framework for the formal development of Standard ML programs. This paper is a preliminary study of the difference between abstract and concrete models of specifications, inspired by the kind of concrete models used in the semantics of Standard ML, in an attempt to determine the consequences of the discrepancy.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [BT87]
    J. Bergstra and J. Tucker. Algebraic specifications of computable and semicomputable data types. Theoretical Computer Science 50:137–181 (1987).CrossRefGoogle Scholar
  2. [BKLOS91]
    M. Bidoit, H.-J. Kreowski, P. Lescanne, F. Orejas and D. Sannella (eds.) Algebraic System Specification and Development: A Survey and Annotated Bibliography. Springer LNCS 501 (1991).Google Scholar
  3. [DGS93]
    R. Diaconescu, J.A, Goguen and P. Stefaneas. Logical support for modularisation. In: Logical frameworks (G. Huet and G. Plotkin, eds.), 83–130. Cambridge Univ. Press (1993).Google Scholar
  4. [EM85]
    H. Ehrig and B. Mahr. Fundamentals of Algebraic Specification 1: Equations and Initial Semantics. Springer (1985).Google Scholar
  5. [GB92]
    J. Goguen and R. Burstall. Institutions: abstract model theory for specification and programming. Journal of the ACM 39:95–146 (1992).CrossRefGoogle Scholar
  6. [Hoa72]
    C.A.R. Hoare. Proofs of correctness of data representations. Acta Informatica 1:271–281 (1972).CrossRefGoogle Scholar
  7. [KST94]
    S. Kahrs, D. Sannella and A. Tarlecki. The definition of Extended ML. Report ECS-LFCS-94-300, Univ. of Edinburgh (1994).Google Scholar
  8. [KST95]
    S. Kahrs, D. Sannella and A. Tarlecki. The definition of Extended ML: a gentle introduction. Report ECS-LFCS-95-322, Univ. of Edinburgh (1995). Theoretical Computer Science, to appear (1996).Google Scholar
  9. [LEW96]
    J. Loeckx, H.-D. Ehrich and M. Wolf. Specifications of Abstract Data Types. Wiley (1996).Google Scholar
  10. [Mal61]
    A.I. Mal'cev. Constructive algebras I. Russian Mathematical Surveys 16:77–129 (1961). Also in: The Metamathematics of Algebraic Systems. Collected papers 1936–1967 (B. Wells ed.), 148–212. North-Holland (1971).Google Scholar
  11. [Mes89]
    J. Meseguer. General logic. Logic Colloquium'87 (H.-D. Ebbinghaus et al., eds.), 279–329. North-Holland (1989).Google Scholar
  12. [MTH90]
    R. Milner, M. Tofte and R. Harper. The Definition of Standard ML. MIT Press (1990).Google Scholar
  13. [Pau91]
    L. Paulson. ML for the Working Programmer. Cambridge Univ. Press (1991).Google Scholar
  14. [Rab60]
    M. Rabin. Computable algebra, general theory and theory of computable fields. Trans, of the AMS 95:341–360 (1960).Google Scholar
  15. [Rog67]
    H. Rogers, Jr. Theory of Recursive Functions and Effective Computability. McGraw-Hill (1967).Google Scholar
  16. [Ros90]
    G. Rosolini. About modest sets. Intl. Journal of Foundations of Computer Science 1:341–353 (1990).CrossRefGoogle Scholar
  17. [San91]
    D. Sannella. Formal program development in Extended ML for the working programmer. Proc. 3rd BCS/FACS Workshop on Refinement, Hursley Park. Springer Workshops in Computing, 99–130 (1991).Google Scholar
  18. [SST92]
    D. Sannella, S. Sokolowski and A. Tarlecki. Toward formal development of programs from algebraic specifications: parameterisation revisited. Acta Informatica 29:689–736 (1992).CrossRefGoogle Scholar
  19. [ST88a]
    D. Sannella and A. Tarlecki. Specifications in an arbitrary institution. Information and Computation 76:165–210 (1988).CrossRefGoogle Scholar
  20. [ST88b]
    D. Sannella and A. Tarlecki. Toward formal development of programs from algebraic specifications: implementations revisited. Acta Informatica 25:233–281 (1988).CrossRefGoogle Scholar
  21. [ST89]
    D. Sannella and A. Tarlecki. Toward formal development of ML programs: foundations and methodology. Proc. 3rd Joint Conf. on Theory and Practice of Software Development, Barcelona. Springer LNCS 352, 375–389 (1989).Google Scholar
  22. [ST95]
    D. Sannella and A. Tarlecki. Model-theoretic foundations for formal program development: basic concepts and motivation. ICS PAS Report 791, Institute of Computer Science PAS, Warsaw (1995).Google Scholar
  23. [ST9?]
    D. Sannella and A. Tarlecki. Foundations of Algebraic Specifications and Formal Program Development. Cambridge Univ. Press, to appear (199?).Google Scholar
  24. [SW83]
    D. Sannella and M. Wirsing. A kernel language for algebraic specification and implementation. Proc. 1983 Intl. Conf. on Foundations of Computation Theory, Borgholm. Springer LNCS 158, 413–427 (1983).Google Scholar
  25. [Sch87]
    O. Schoett. Data Abstraction and the Correctness of Modular Programming. Ph.D. thesis; Report CST-42-87, Univ. of Edinburgh (1987).Google Scholar
  26. [SHT95]
    V. Stoltenberg-Hansen and J. Tucker. Effective algebras. In: Handbook of Logic in Computer Science, Vol. 4 (S. Abramsky, D. Gabbay and T. Maibaum, eds.), 357–526. Oxford Univ. Press (1995).Google Scholar
  27. [Tar96]
    A. Tarlecki. Moving between logical systems. Recent Trends in Data Type Specifications. 11th Workshop on Specification of Abstract Data Types (M. Haveraaen et al., eds.). Springer LNCS, to appear (1996).Google Scholar
  28. [Wir90]
    M. Wirsing. Algebraic specification. In: Handbook of Theoretical Computer Science, Vol. B (J. van Leeuwen, ed.), 675–788. North-Holland (1990).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Donald Sannella
    • 1
  • Andrzej Tarlecki
    • 2
    • 3
  1. 1.Laboratory for Foundations of Computer ScienceEdinburgh UniversityEdinburghScotland
  2. 2.Institute of InformaticsWarsaw UniversityPoland
  3. 3.Institute of Computer SciencePolish Academy of SciencesWarsawPoland

Personalised recommendations