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.
Chapter PDF
Similar content being viewed by others
Keywords
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
Broy, M., Möller, B., Pepper, P. and Wirsing, M. Algebraic implementations preserve program correctness. Science of Computer Programming 7, pp. 35–53.
Broy, M. and Wirsing, M. Partial abstract types. Acta Informatica 18 pp. 47–64.
Burstall, R.M. and Goguen, J.A. Putting together theories to make specifications. Proc. 5th Intl. Joint Conf. on Artificial Intelligence, Cambridge.
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.
de Nicola, R. and Hennessy, M.C.B. Testing equivalences for processes. Theoretical Computer Science 34, pp. 83–133.
Ehrich, H.-D. On realization and implementation. Proc. 10th Intl. Symp. on Mathematical Foundations of Computer Science, Strbske Pleso, Czechoslovakia. Springer LNCS 118.
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.
Ehrig, H., Kreowski, H.-J., Mahr, B. and Padawitz, P. Algebraic implementation of abstract data types. Theoretical Computer Science 20 pp. 209–263.
Ehrig, H. and Mahr, B. Fundamentals of Algebraic Specification I: Equations and Initial Semantics. EATCS Monographs on Theoretical Computer Science, Springer.
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.
Ganzinger, H. Parameterized specifications: parameter passing and implementation with respect to observability. TOPLAS 5, 3 pp. 318–354.
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.
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.
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.
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.
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.
Kamin, S. Final data types and their specification. TOPLAS 5, 1 pp. 97–121.
Larsen, K. Context-dependent bisimulation between processes. Ph.D. thesis, Dept. of Computer Science, Univ. of Edinburgh.
Lipeck, U. Ein algebraischer Kalkül für einer strukturierten Entwurf von Datenabstraktionen. Ph.D. thesis, Abteilung Informatik, Universität Dortmund.
Liskov, B.H. and Berzins, V. An appraisal of program specifications. Computation Structures Group memo 141-1, Laboratory for Computer Science, MIT.
MacQueen, D.B. Modules for Standard ML. Polymorphism 2, 2.
Milner, R.G. The Standard ML core language. Polymorphism 2, 2.
Moore, E.F. Gedanken-experiments on sequential machines. In: Automata Studies (C.E. Shannon and J. McCarthy, eds.), Princeton Univ. Press, pp. 129–153.
Orejas, F. Characterizing composability of abstract implementations. Proc. Intl. Conf. on Foundations of Computation Theory, Borgholm, Sweden. Springer LNCS 158, pp. 335–346.
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.
Reichel, H. Behavioural equivalence — a unifying concept for initial and final specification methods. Proc. 3rd Hungarian Computer Science Conference, Budapest, pp. 27–39.
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.
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.
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.
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.
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).
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.
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.
Schoett, O. A theory of program modules, their specification and implementation (extended abstract). Report CSR-155-83, Dept. of Computer Science, Univ. of Edinburgh.
Tarlecki, A. Software-system development — an abstract view. Information Processing '86. North-Holland, pp. 685–688.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1987 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Sannella, D., Tarlecki, A. (1987). Toward formal development of programs from algebraic specifications: Implementations revisited. In: Ehrig, H., Kowalski, R., Levi, G., Montanari, U. (eds) TAPSOFT '87. CAAP 1987. Lecture Notes in Computer Science, vol 249. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-17660-8_50
Download citation
DOI: https://doi.org/10.1007/3-540-17660-8_50
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-17660-2
Online ISBN: 978-3-540-47746-4
eBook Packages: Springer Book Archive