Skip to main content

Specification and implementation of concurrently accessed data structures: An abstract data type approach

  • Contributed Papers
  • Conference paper
  • First Online:
STACS 87 (STACS 1987)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 247))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. W.B. Ackerman Data Flow Languages IEEE Computer, 15/12, February 1982.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. J.W. Backus Can Programming be Liberated from the Von Neumann Style?, Communications of the ACM, August 1978.

    Google Scholar 

  4. J.W. Backus The Algebra of Functional Programs, Proc. of the International Colloquium on Formalization of Programming Concepts, LNCS 107 (Springer Verlag), 1981.

    Google Scholar 

  5. J.C.M. Baeten, J.A. Bergstra, J.W. Klop Algebra of Communicating Processes — Part II, Technical Note of the Esprit METEOR Project, 1985.

    Google Scholar 

  6. J.A. Bergstra, J.W. Klop Process Algebra for Synchronous Communication, Information and Control, 60, 1984.

    Google Scholar 

  7. J.A. Bergstra, J.V. Tucker Top-Down Design and the Algebra of Communicating Processes, Science of Computer Programming, 5, 1985.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. G. Bernot, M. Bidoit, C. Choppy Abstract Implementations and Corrections Proofs, Proc. of the STACS'86 conference, LNCS 210 (Springer Verlag), 1986.

    Google Scholar 

  10. M. Broy Specification and Top Down Design of Distributed Systems, Proc. of the TAPSOFT'85 Conference, LNCS 185 (Springer Verlag), 1985.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. J.B. Dennis First Version of a Data Flow Procedure Language, Proc. of the Colloque sur la Programmation, LNCS 19 (Springer Verlag), 1974.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. M.C. Gaudel, S. Kaplan How to Write Meaningful Structured Specifications, Technical Note of the Esprit METEOR project, 1986.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. J.V. Guttag The Specification and Application to Programming, Ph.D. Thesis, University of Toronto, 1975.

    Google Scholar 

  17. S. Kamin Final Data Type Specifications: a New Data Type Specification Method, ACM Transaction on Programming Languages and Systems, 511, 1983.

    Google Scholar 

  18. L. Lamport Specifying Concurrent Program Modules, ACM Transactions on Programming Languages and Systems, 512, April 1983.

    Google Scholar 

  19. B. Liskov, S. Zilles Specification Techniques for Data Abstraction, IEEE Transactions on Software Engineering, March 1975.

    Google Scholar 

  20. R. Milner A Calculus of Communicating Systems, LNCS 92 (Springer Verlag), 1980.

    Google Scholar 

  21. R. Milner Lectures on a Calculus of Communicating Systems, Proc. of the Seminar on Concurrency, LNCS 197 (Springer Verlag), 1984.

    Google Scholar 

  22. S.S. Owicki Specifications and Proofs for Abstract Data Types in Concurrent Programs, Program Construction, LNCS 69 (Springer Verlag), 1979.

    Google Scholar 

  23. 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.

    Google Scholar 

  24. F.W. Vaandrager Verification of two Communication Protocols by means of Process Algebra, Report CS-R8608, CWI (Amsterdam), 1986.

    Google Scholar 

  25. J.H. Williams On the Development of the Algebra of Functional Programs, ACM Transaction on Programming Languages and Systems, 4/4, October 1982.

    Google Scholar 

  26. W. Weihl Data Dependent Concurrency Control and Recovery, ACM Operating Systems Review, 19/1, 1985.

    Google Scholar 

  27. W. Weihl, B. Liskov Implementation of Resilient, Atomic Data Types, ACM Transaction on Programming Languages and Systems, 7/2, 1985.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Franz J. Brandenburg Guy Vidal-Naquet Martin Wirsing

Rights and permissions

Reprints 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

Publish with us

Policies and ethics