Abstract
In this paper, we extended abstract data types methods to the question of the specification and the implementation of data structures accessed concurrently by several processes. Our approach provides the underlying theory for modularity and development by a stepwise refinement strategy of such systems.
We have identified the properties that must be checked in order to prove that an implementation is correct. They consist of two groups: the first one is similar to the properties usually required when proving the implementation of a classical, non-concurrent algebraic specification; they are dealt with in the usual fashion. The second group states that no new, undesirable interleavings occur in the implementation; we have designed a proof method for this.
One direction of future research, is to investigate the introduction of more sophisticated primitives for the construction of non-atomic processes (conditionals, guarded choice,...). Several new questions then arise; in particular, our notion of strong implementation should be refined, and our proof methods extended accordingly.
The work of the second author has been partially supported by the INRIA and by the Esprit project METEOR.
Preview
Unable to display preview. Download preview PDF.
References
W.B. Ackerman Data Flow Languages IEEE Computer, 15/12, February 1982.
E. Astesiano, G.F Mascari, G. Reggio, M. Wirsing On the Parameterized Algebraic Specification of Concurrent Systems, Proc. of the CAAP'85 Conference, LNCS 185 (Springer Verlag), 1985.
J.W. Backus Can Programming be Liberated from the Von Neumann Style?, Communications of the ACM, August 1978.
J.W. Backus The Algebra of Functional Programs, Proc. of the International Colloquium on Formalization of Programming Concepts, LNCS 107 (Springer Verlag), 1981.
J.C.M. Baeten, J.A. Bergstra, J.W. Klop Algebra of Communicating Processes — Part II, Technical Note of the Esprit METEOR Project, 1985.
J.A. Bergstra, J.W. Klop Process Algebra for Synchronous Communication, Information and Control, 60, 1984.
J.A. Bergstra, J.V. Tucker Top-Down Design and the Algebra of Communicating Processes, Science of Computer Programming, 5, 1985.
G. Bernot Une Sémantique Algébrique pour une Spécification Différenciée des Exceptions et des Erreurs, Thèse de 3ème cycle, Université d'Orsay (France), 1985.
G. Bernot, M. Bidoit, C. Choppy Abstract Implementations and Corrections Proofs, Proc. of the STACS'86 conference, LNCS 210 (Springer Verlag), 1986.
M. Broy Specification and Top Down Design of Distributed Systems, Proc. of the TAPSOFT'85 Conference, LNCS 185 (Springer Verlag), 1985.
C. Choppy, G. Guiho, S. Kaplan A LISP compiler for FP languages and its proof via algebraic semantics. Proc. of the TAPSOFT'85 Conference, LNCS 185 (Springer Verlag), 1985.
J.B. Dennis First Version of a Data Flow Procedure Language, Proc. of the Colloque sur la Programmation, LNCS 19 (Springer Verlag), 1974.
M.C. Gaudel Génération et Preuve de Compilateurs Basées sur une Semantique Formelle des Languages de Programmation, Thèse d'Etat, Nancy, 1980.
M.C. Gaudel, S. Kaplan How to Write Meaningful Structured Specifications, Technical Note of the Esprit METEOR project, 1986.
J.A. Goguen, J.W. Thatcher, E.G. Wagner (ADJ) An Initial Algebra Approach to the Specification, Correctness and Implementation of Abstract Data Types, Current Trends in Programming Methodology (Prentice Hall — New Jersey), 1978.
J.V. Guttag The Specification and Application to Programming, Ph.D. Thesis, University of Toronto, 1975.
S. Kamin Final Data Type Specifications: a New Data Type Specification Method, ACM Transaction on Programming Languages and Systems, 511, 1983.
L. Lamport Specifying Concurrent Program Modules, ACM Transactions on Programming Languages and Systems, 512, April 1983.
B. Liskov, S. Zilles Specification Techniques for Data Abstraction, IEEE Transactions on Software Engineering, March 1975.
R. Milner A Calculus of Communicating Systems, LNCS 92 (Springer Verlag), 1980.
R. Milner Lectures on a Calculus of Communicating Systems, Proc. of the Seminar on Concurrency, LNCS 197 (Springer Verlag), 1984.
S.S. Owicki Specifications and Proofs for Abstract Data Types in Concurrent Programs, Program Construction, LNCS 69 (Springer Verlag), 1979.
D.T. Sanella, M. Wirsing A Kernel Language for Algebraic Specification and Implementation, Proc. of the International Conference on Foundations of Computation Theory, LNCS 158 (Springer Verlag), 1983.
F.W. Vaandrager Verification of two Communication Protocols by means of Process Algebra, Report CS-R8608, CWI (Amsterdam), 1986.
J.H. Williams On the Development of the Algebra of Functional Programs, ACM Transaction on Programming Languages and Systems, 4/4, October 1982.
W. Weihl Data Dependent Concurrency Control and Recovery, ACM Operating Systems Review, 19/1, 1985.
W. Weihl, B. Liskov Implementation of Resilient, Atomic Data Types, ACM Transaction on Programming Languages and Systems, 7/2, 1985.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1987 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kaplan, S., Pnueli, A. (1987). Specification and implementation of concurrently accessed data structures: An abstract data type approach. In: Brandenburg, F.J., Vidal-Naquet, G., Wirsing, M. (eds) STACS 87. STACS 1987. Lecture Notes in Computer Science, vol 247. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0039609
Download citation
DOI: https://doi.org/10.1007/BFb0039609
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-17219-2
Online ISBN: 978-3-540-47419-7
eBook Packages: Springer Book Archive