Advertisement

Toward formal development of programs from algebraic specifications: Implementations revisited

  • Donald Sannella
  • Andrzej Tarlecki
Session CAAP 3 Algebraic Specifications I
Part of the Lecture Notes in Computer Science book series (LNCS, volume 249)

Abstract

The program development process is viewed as a sequence of implementation steps leading from a specification to a program. Based on an elementary notion of refinement, two notions of implementation are studied: constructor implementations which involve a construction “on top of” the implementing specification, and abstractor implementations which additionally provide for abstraction from some details of the implemented specification. These subsume most formal notions of implementation in the literature. Both kinds of implementations satisfy a vertical composition and a (modified) horizontal composition property. All the definitions and results generalise to the framework of an arbitrary institution.

Keywords

Parameterised Specification Abstract Data Type Simple Notion Signature Morphism Algebraic Specification 
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. [BMPW 86]
    Broy, M., Möller, B., Pepper, P. and Wirsing, M. Algebraic implementations preserve program correctness. Science of Computer Programming 7, pp. 35–53.Google Scholar
  2. [BrW 82]
    Broy, M. and Wirsing, M. Partial abstract types. Acta Informatica 18 pp. 47–64.Google Scholar
  3. [BG 77]
    Burstall, R.M. and Goguen, J.A. Putting together theories to make specifications. Proc. 5th Intl. Joint Conf. on Artificial Intelligence, Cambridge.Google Scholar
  4. [BG 80]
    Burstall, R.M. and Goguen, J.A. The semantics of Clear, a specification language. Proc. of Advanced Course on Abstract Software Specifications, Copenhagen. Springer LNCS 86, pp. 292–332.Google Scholar
  5. [deNH 84]
    de Nicola, R. and Hennessy, M.C.B. Testing equivalences for processes. Theoretical Computer Science 34, pp. 83–133.Google Scholar
  6. [Ehr 81]
    Ehrich, H.-D. On realization and implementation. Proc. 10th Intl. Symp. on Mathematical Foundations of Computer Science, Strbske Pleso, Czechoslovakia. Springer LNCS 118.Google Scholar
  7. [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 pp. 206–227.Google Scholar
  8. [EKMP 82]
    Ehrig, H., Kreowski, H.-J., Mahr, B. and Padawitz, P. Algebraic implementation of abstract data types. Theoretical Computer Science 20 pp. 209–263.Google Scholar
  9. [EM 85]
    Ehrig, H. and Mahr, B. Fundamentals of Algebraic Specification I: Equations and Initial Semantics. EATCS Monographs on Theoretical Computer Science, Springer.Google Scholar
  10. [EWT 83]
    Ehrig, H., Wagner, E.G. and Thatcher, J.W. Algebraic specifications with generating constraints. Proc. 10th Intl. Colloq. on Automata, Languages and Programming, Barcelona. Springer LNCS 154, pp. 188–202.Google Scholar
  11. [Gan 83]
    Ganzinger, H. Parameterized specifications: parameter passing and implementation with respect to observability. TOPLAS 5, 3 pp. 318–354.Google Scholar
  12. [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. Springer LNCS 45.Google Scholar
  13. [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, SRI International.Google Scholar
  14. [GB 84]
    Goguen, J.A. and Burstall, R.M. Introducing institutions. Proc. Logics of Programming Workshop (E. Clarke and D. Kozen, eds.), Carnegie-Mellon University. Springer LNCS 164, pp. 221–256.Google Scholar
  15. [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. Springer LNCS 140, pp. 265–281.Google Scholar
  16. [GTW 78]
    Goguen, J.A., Thatcher, J.W. and Wagner, E.G. An initial algebra approach to the specification, correctness, and implementation of abstract data types. Current Trends in Programming Methodology, Vol. 4: Data Structuring (R.T. Yeh, ed.), Prentice-Hall, pp. 80–149.Google Scholar
  17. [Kam 83]
    Kamin, S. Final data types and their specification. TOPLAS 5, 1 pp. 97–121.Google Scholar
  18. [Lar 86]
    Larsen, K. Context-dependent bisimulation between processes. Ph.D. thesis, Dept. of Computer Science, Univ. of Edinburgh.Google Scholar
  19. [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
  20. [LB 77]
    Liskov, B.H. and Berzins, V. An appraisal of program specifications. Computation Structures Group memo 141-1, Laboratory for Computer Science, MIT.Google Scholar
  21. [MacQ 85]
    MacQueen, D.B. Modules for Standard ML. Polymorphism 2, 2.Google Scholar
  22. [Mil 85]
    Milner, R.G. The Standard ML core language. Polymorphism 2, 2.Google Scholar
  23. [Moo 56]
    Moore, E.F. Gedanken-experiments on sequential machines. In: Automata Studies (C.E. Shannon and J. McCarthy, eds.), Princeton Univ. Press, pp. 129–153.Google Scholar
  24. [Ore 83]
    Orejas, F. Characterizing composability of abstract implementations. Proc. Intl. Conf. on Foundations of Computation Theory, Borgholm, Sweden. Springer LNCS 158, pp. 335–346.Google Scholar
  25. [PB 85]
    Parisi-Presicce, F. and Blum, E.K. The semantics of shared submodules specifications. Proc. 10th Colloq. on Trees in Algebra and Programming, Joint Conf. on Theory and Practice of Software Development (TAPSOFT), Berlin. Springer LNCS 185, pp. 359–373.Google Scholar
  26. [Rei 81]
    Reichel, H. Behavioural equivalence — a unifying concept for initial and final specification methods. Proc. 3rd Hungarian Computer Science Conference, Budapest, pp. 27–39.Google Scholar
  27. [ST 85a]
    Sannella, D.T. 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, pp. 31–38.Google Scholar
  28. [ST 85b]
    Sannella, D.T. and Tarlecki, A. Program specification and development in Standard ML. Proc. 12th ACM Symp. on Principles of Programming Languages, New Orleans, pp. 67–77.Google Scholar
  29. [ST 86a]
    Sannella, D.T. and Tarlecki, A. Specifications in an arbitrary institution. Report CSR-184–85, Dept. of Computer Science, Univ. of Edinburgh; to appear in Information and Control.Google Scholar
  30. [ST 86b]
    Sannella, D.T. and Tarlecki, A. On observational equivalence and algebraic specification. Report CSR-172-84, Dept. of Computer Science, Univ. of Edinburgh; to appear in Journal of Computer and Systems Sciences.Google Scholar
  31. [ST 87]
    Sannella, D.T. and Tarlecki, A. Toward formal development of programs from algebraic specifications: implementations revisited (full version). Research report, Dept. of Computer Science, Univ. of Edinburgh (to appear).Google Scholar
  32. [SW 82]
    Sannella, D.T. and Wirsing, M. Implementation of parameterised specifications (extended abstract). Proc. 9th Intl. Colloq. on Automata, Languages and Programming, Aarhus. Springer LNCS 140, pp. 473–488.Google Scholar
  33. [SW 83]
    Sannella, D.T. and Wirsing, M. A kernel language for algebraic specification and implementation (extended abstract). Proc. Intl. Conf. on Foundations of Computation Theory, Borgholm, Sweden. Springer LNCS 158, pp. 413–427.Google Scholar
  34. [Sch 82]
    Schoett, O. A theory of program modules, their specification and implementation (extended abstract). Report CSR-155-83, Dept. of Computer Science, Univ. of Edinburgh.Google Scholar
  35. [Tar 86]
    Tarlecki, A. Software-system development — an abstract view. Information Processing '86. North-Holland, pp. 685–688.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • Donald Sannella
    • 1
    • 2
  • Andrzej Tarlecki
    • 3
  1. 1.Department of Artificial IntelligenceUniversity of Edinburgh and Laboratory for Foundations of Computer ScienceUK
  2. 2.Department of Computer ScienceUniversity of EdinburghUK
  3. 3.Institute of Computer SciencePolish Academy of SciencesWarsaw

Personalised recommendations