Toward formal development of ML programs: Foundations and methodology

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


A methodology is presented for the formal development of modular Standard ML programs from specifications. Program development proceeds via a sequence of design (modular decomposition), coding and refinement steps. For each of these three kinds of step, conditions are given which ensure the correctness of the result. These conditions seem to be as weak as possible under the constraint of being expressible as “local” interface matching requirements.


Formal Development Input Signature Verification Condition Functor Decomposition Abstract Data Type 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

8 References

  1. [Bau 85]
    Bauer, F.L. et al (the CIP language group). The Wide Spectrum Language CIP-L. LNCS 183.Google Scholar
  2. [BDMP 85]
    Bjørner, D., Denvir, T., Meiling, E. and Pedersen, J.S. The RAISE project: fundamental issues and requirements. Report RAISE/DDC/EM/1/V6, Dansk Datamatic Center.Google Scholar
  3. [Ehr 82]
    Ehrich, H.-D. On the theory of specification, implementation, and parametrization of abstract data types. Journal of the Assoc. for Computing Machinery 29, 206–227.Google Scholar
  4. [EFHLP 87]
    Ehrig, H., Fey, W., Hansen, H., Löwe, M. and Parisi-Presicce, F. Algebraic theory of modular specification development. Technical report, Technische Univ. Berlin.Google Scholar
  5. [EKMP 82]
    Ehrig, H., Kreowski, H.-J., Mahr, B. and Padawitz, P. Algebraic implementation of abstract data types. Theoretical Computer Science 20, 209–263.Google Scholar
  6. [EW 85]
    Ehrig, H. and Weber, H. Algebraic specification of modules. In: Formal Models in Programming (E.J. Neuhold and G. Chronist, eds.). North-Holland, 231–258.Google Scholar
  7. [Far 89]
    Farrés, J. Forthcoming Ph.D. thesis, Univ. of Edinburgh.Google Scholar
  8. [Gan 83]
    Ganzinger, H. Parameterized specifications: parameter passing and implementation with respect to observability. Trans. Prog. Lang. Syst. 5, 318–354.Google Scholar
  9. [GGM 76]
    Giarratana, V., Gimona, F. and Montanari, U. Observability concepts in abstract data type specification. Proc. 5th Intl. Symp. on Mathematical Foundations of Computer Science, Gdansk. LNCS 45, 576–587.Google Scholar
  10. [Gog 84]
    Goguen, J.A. Parameterized programming. IEEE Trans. Software Engineering SE-10, 528–543.Google Scholar
  11. [GB 80]
    Goguen, J.A. and Burstall, R.M. CAT, a system for the structured elaboration of correct programs from structured specifications. Technical report CSL-118, Computer Science Laboratory, SRI International.Google Scholar
  12. [GB 84]
    Goguen, J.A. and Burstall, R.M. Introducing institutions. Proc. Logics of Programming Workshop, Carnegie-Mellon, LNCS 164, 221–256.Google Scholar
  13. [GM 82]
    Goguen, J.A. and Meseguer, J. Universal realization, persistent interconnection and implementation of abstract modules. Proc. 9th Intl. Colloq. on Automata, Languages and Programming, Aarhus. LNCS 140, 265–281.Google Scholar
  14. [Jones 80]
    Jones, C. Software Development: A Rigorous Approach. Prentice-Hall.Google Scholar
  15. [Har 86]
    Harper, R. Introduction to Standard ML. Report ECS-LFCS-86-14, University of Edinburgh.Google Scholar
  16. [HMM 86]
    Harper, R., MacQueen, D.B. and Milner, R. Standard ML. Report ECS-LFCS-86-2, Univ. of Edinburgh.Google Scholar
  17. [HMT 87]
    Harper, R., Milner, R. and Tofte, M. The semantics of Standard ML (version 1). Report ECS-LFCS-87-36, Univ. of Edinburgh.Google Scholar
  18. [Lip 83]
    Lipeck, U. Ein algebraischer Kalkül für einer strukturierten Entwurf von Datenabstraktionen. Ph.D. thesis, Abteilung Informatik, Universität Dortmund.Google Scholar
  19. [MacQ 86]
    MacQueen, D.B. Modules for Standard ML. In [HMM 86].Google Scholar
  20. [Mil 86]
    Milner, R. The Standard ML core language (revised). In [HMM 86].Google Scholar
  21. [NO 88]
    Nivela, M.P. and Orejas, F. Initial behaviour semantics for algebraic specifications. Proc. 5th Workshop on Specification of Abstract Data Types, Gullane, Scotland, LNCS 332, 184–207.Google Scholar
  22. [Ore 83]
    Orejas, F. Characterizing composability of abstract interpretations. Proc. Intl. Conf. on Foundations of Computation Theory, Borgholm, Sweden, LNCS 158, 335–346.Google Scholar
  23. [Rei 81]
    Reichel, H. Behavioural equivalence — a unifying concept for initial and final specification methods. Proc. 3rd Hungarian Computer Science Conference, Budapest, 27–39.Google Scholar
  24. [Rei 84]
    Reichel, H. Behavioural validity of equations in abstract data types. Contributions to General Algebra 3, Proc. of the Vienna Conference. Teubner, 301–324.Google Scholar
  25. [ST 85a]
    Sannella, D. and Tarlecki, A. Some thoughts on algebraic specification. Proc. 3rd Workshop on Theory and Applications of Abstract Data Types, Bremen. Springer Informatik-Fachberichte Vol. 116, 31–38.Google Scholar
  26. [ST 85b]
    Sannella, D. and Tarlecki, A. Program specification and development in Standard ML. Proc. 12th ACM Symp. on Principles of Programming Languages, New Orleans, 67–77.Google Scholar
  27. [ST 86]
    Sannella, D. and Tarlecki, A. Extended ML: an institution-independent framework for formal program development. Proc. Workshop on Category Theory and Computer Programming, LNCS 240, 364–389.Google Scholar
  28. [ST 87]
    Sannella, D. and Tarlecki, A. On observational equivalence and algebraic specification. J. Comp. and Sys. Sciences 34, 150–178.Google Scholar
  29. [ST 88a]
    Sannella, D. and Tarlecki, A. Specifications in an arbitrary institution. Information and Computation 76, 165–210.Google Scholar
  30. [ST 88b]
    Sannella, D.T. and Tarlecki, A. Toward formal development of programs from algebraic specifications: implementations revisited. Acta Informatica 25, 233–281.Google Scholar
  31. [ST 89]
    Sannella, D.T. and Tarlecki, A. Toward formal development of ML programs: foundations and methodology (long version). Report ECS-LFCS-89-71, Univ. of Edinburgh.Google Scholar
  32. [SWi 83]
    Sannella, D. and Wirsing, M. A kernel language for algebraic specification and implementation. Proc. Intl. Conf. on Foundations of Computation Theory, Borgholm, Sweden, LNCS 158, 413–427.Google Scholar
  33. [Sch 86]
    Schoett, O. Data abstraction and the correctness of modular programming. Ph.D. thesis, Univ. of Edinburgh.Google Scholar
  34. [Wand 82]
    Wand, M. Specification, models, and implementations of data abstractions. Theoretical Computer Science 20, 3–32.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1989

Authors and Affiliations

  • Donald Sannella
    • 1
  • Andrzej Tarlecki
    • 2
  1. 1.Laboratory for Foundations of Computer Science Department of Computer ScienceUniversity of EdinburghUK
  2. 2.Institute of Computer SciencePolish Academy of SciencesWarsaw

Personalised recommendations