CAAP 1987: TAPSOFT '87 pp 96-110 | Cite as
Toward formal development of programs from algebraic specifications: Implementations revisited
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 Specification8 References
- [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
- [BrW 82]Broy, M. and Wirsing, M. Partial abstract types. Acta Informatica 18 pp. 47–64.Google Scholar
- [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
- [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
- [deNH 84]de Nicola, R. and Hennessy, M.C.B. Testing equivalences for processes. Theoretical Computer Science 34, pp. 83–133.Google Scholar
- [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
- [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
- [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
- [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
- [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
- [Gan 83]Ganzinger, H. Parameterized specifications: parameter passing and implementation with respect to observability. TOPLAS 5, 3 pp. 318–354.Google Scholar
- [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
- [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
- [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
- [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
- [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
- [Kam 83]Kamin, S. Final data types and their specification. TOPLAS 5, 1 pp. 97–121.Google Scholar
- [Lar 86]Larsen, K. Context-dependent bisimulation between processes. Ph.D. thesis, Dept. of Computer Science, Univ. of Edinburgh.Google Scholar
- [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
- [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
- [MacQ 85]MacQueen, D.B. Modules for Standard ML. Polymorphism 2, 2.Google Scholar
- [Mil 85]Milner, R.G. The Standard ML core language. Polymorphism 2, 2.Google Scholar
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [Tar 86]Tarlecki, A. Software-system development — an abstract view. Information Processing '86. North-Holland, pp. 685–688.Google Scholar