Skip to main content

Modular specifications in process algebra

With curious queues

  • Part IV An Algebraic Approach To Concurrency
  • Conference paper
  • First Online:
Algebraic Methods: Theory, Tools and Applications (Algebraic Methods 1987)

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

Included in the following conference series:

Abstract

In recent years a wide variety of process algebras has been proposed in the literature. Often these process algebras are closely related: they can be viewed as homomorphic images, submodels or restrictions of each other. The aim of this paper is to show how the semantical reality, consisting of a large number of closely related process algebras, can be reflected, and even used, on the level of algebraic specifications and in process verifications. This is done by means of the notion of a module. The simplest modules are building blocks of operators and axioms, each block describing a feature of concurrency in a certain semantical setting. These modules can then be combined by means of a union operator +, an export operator □, allowing to forget some operators in a module, an operator H, changing semantics by taking homomorphic images, and an operator S which takes subalgebras. These operators enable us to combine modules in a subtle way, when the direct combination would be inconsistent. We show how auxiliary process algebra operators can be hidden when this is needed. Moreover it is demonstrated how new process combinators can be defined in terms of the more elementary ones in a clean way. As an illustration of our approach, a methodology is presented that can be used to specify FIFO-queues, and that facilitates verification of concurrent systems containing these queues.

extended abstract

Note: The research of the authors was supported by ESPRIT project no. 432, An Integrated Formal Approach to Industrial Software Development (METEOR). The research of the second author was also supported by RACE project no. 1046, Specification and Programming Environment for Communication Software (SPECS). A full version of this paper appeared as [23].

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. P. America (1985): Definition of the programming language POOL-T. ESPRIT project 415, Doc. Nr. 91, Philips Research Laboratories, Eindhoven.

    Google Scholar 

  2. D. Austry & G. Boudol (1984): Algèbre de processus et synchronisations. Theoretical Computer Science 30(1), pp. 91–131.

    Article  Google Scholar 

  3. J.C.M. Baeten & J.A. Bergstra (1987): Global Renaming Operators in Concrete Process Algebra (revised version). Report P8709, Programming Research Group, University of Amsterdam, to appear in I&C.

    Google Scholar 

  4. J.C.M. Baeten, J.A. Bergstra & J.W. Klop (1987): Conditional Axioms and α/β Calculus in Process Algebra. In: Formal Description of Programming Concepts — III, Proceedings of the third IFIP WG 2.2 working conference, Ebberup 1986 (M. Wirsing, ed.), North-Holland, Amsterdam, pp. 53–75.

    Google Scholar 

  5. J.C.M. Baeten, J.A. Bergstra & J.W. Klop (1987): On the Consistency of Koomen's Fair Abstraction Rule. Theoretical Computer Science 51(1/2), pp. 129–176.

    Article  Google Scholar 

  6. J.C.M. Baeten, J.A. Bergstra & J.W. Klop (1987): Ready trace semantics for concrete process algebra with priority operator. The Computer Journal 30(6), pp. 498–506.

    Google Scholar 

  7. J.C.M. Baeten & R.J. van Glabbeek (1987): Merge and termination in process algebra. In: Proceedings 7th Conference on Foundations of Software Technology & Theoretical Computer Science, Pune, India (K.V. Nori, ed.), LNCS 287, Springer-Verlag, pp. 153–172.

    Google Scholar 

  8. J.A. Bergstra (1985): A Process Creation Mechanism in Process Algebra. Logic Group Preprint Series Nr. 2, CIF, State University of Utrecht, to appear in: Applications of Process Algebra, (J.C.M. Baeten, ed.), CWI Monograph, North-Holland, 1988.

    Google Scholar 

  9. J.A. Bergstra, J. Heering & P. Klint (1986): Module Algebra. Report CS-R8617, Centrum voor Wiskunde en Informatica, Amsterdam, to appear in: Journal of the ACM.

    Google Scholar 

  10. J.A. Bergstra & J.W. Klop (1984): The algebra of recursively defined processes and the algebra of regular processes. In: Proceedings 11th ICALP, Antwerpen (J. Paredaens, ed.), LNCS 172, Springer-Verlag, pp. 82–95.

    Google Scholar 

  11. J.A. Bergstra & J.W. Klop (1984): Process algebra for synchronous communication. I&C 60(1/3), pp. 109–137.

    Google Scholar 

  12. J.A. Bergstra & J.W. Klop (1985): Algebra of communicating processes with abstraction. Theoretical Computer Science 37(1), pp. 77–121.

    Article  Google Scholar 

  13. J.A. Bergstra & J.W. Klop (1986): Process Algebra: Specification and Verification in Bisimulation Semantics. In: Mathematics and Computer Science II, CWI Monograph 4 (M. Hazewinkel, J.K. Lenstra & L.G.L.T. Meertens, eds.), North-Holland, Amsterdam, pp. 61–94.

    Google Scholar 

  14. J.A. Bergstra & J.W. Klop: ACPτ: A Universal Axiom System for Process Specification. This volume.

    Google Scholar 

  15. J.A. Bergstra, J.W. Klop & E.-R. Olderog (1987): Failures without chaos: a new process semantics for fair abstraction. In: Formal Description of Programming Concepts — III, Proceedings of the third IFIP WG 2.2 working conference, Ebberup 1986 (M. Wirsing, ed.), North-Holland, Amsterdam, pp. 77–103.

    Google Scholar 

  16. J.A. Bergstra & J. Tiuryn (1987): Process Algebra Semantics for Queues. Fund. Inf. X, pp. 213–224, also appeared as: MC Report IW 241, Amsterdam 1983.

    Google Scholar 

  17. S.D. Brookes & A.W. Roscoe (1985): An improved failures model for communicating processes. In: Seminar on Concurrency (S.D. Brookes, A.W. Roscoe & G. Winskel, eds.), LNCS 197, Springer-Verlag, pp. 281–305.

    Google Scholar 

  18. M. Broy (1987): Views of Queues. Report MIP-8704, Fakultät für Mathematik und Informatik, Universität Passau.

    Google Scholar 

  19. CHILL (1980): Recommendation Z.200 (CHILL Language Definition). CCITT Study Group XI.

    Google Scholar 

  20. R. De Nicola & M. Hennessy (1984): Testing equivalences for processes. Theoretical Computer Science 34, pp. 83–134.

    Article  Google Scholar 

  21. T. Denvir, W. Harwood, M. Jackson & M. Ray (1985): The Analysis of Concurrent Systems, Proceedings of a Tutorial and Workshop, Cambridge University 1983, LNCS 207, Springer-Verlag.

    Google Scholar 

  22. R.J. van Glabbeek (1987): Bounded Nondeterminism and the Approximation Induction Principle in Process Algebra. In: Proceedings STACS 87 (F.J. Brandenburg, G. Vidal-Naquet & M. Wirsing, eds.), LNCS 247, Springer-Verlag, pp. 336–347.

    Google Scholar 

  23. R.J. van Glabbeek & F.W. Vaandrager (1988): Modular Specifications in Process Algebra — With Curious Queues. Report CS-R8821, Centrum voor Wiskunde en Informatica, Amsterdam.

    Google Scholar 

  24. C.A.R. Hoare (1980): Communicating sequential processes. In: On the construction of programs — an advanced course (R.M. McKeag & A.M. Macnaghten, eds.), Cambridge University Press, pp. 229–254.

    Google Scholar 

  25. C.A.R. Hoare (1985): Communicating Sequential Processes, Prentice-Hall International.

    Google Scholar 

  26. He Jifeng & C.A.R. Hoare (1987): Algebraic specification and proof of a distributed recovery algorithm. Distributed Computing 2(1), pp. 1–12.

    Article  Google Scholar 

  27. C.P.J. Koymans & J.C. Mulder (1986): A Modular Approach to Protocol Verification using Process Algebra. Logic Group Preprint Series Nr. 6, CIF, State University of Utrecht, to appear in: Applications of Process Algebra, (J.C.M. Baeten, ed.), CWI Monograph, North-Holland, 1988.

    Google Scholar 

  28. K.G. Larsen & R. Milner (1987): A Complete Protocol Verification Using Relativized Bisimulation. In: Proceedings 14th ICALP, Karlsruhe (Th. Ottmann, ed.), LNCS 267, Springer-Verlag, pp. 126–135.

    Google Scholar 

  29. S. Mauw (1987): An algebraic specification of process algebra, including two examples. This volume.

    Google Scholar 

  30. S. Mauw & G.J. Veltink (1988): A Process Specification Formalism. Report P8814, Programming Research Group, University of Amsterdam.

    Google Scholar 

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

    Google Scholar 

  32. R. Milner (1985): Lectures on a Calculus for Communicating Systems. In: Seminar on Concurrency (S.D. Brookes, A.W. Roscoe & G. Winskel, eds.), LNCS 197, Springer-Verlag, pp. 197–220.

    Google Scholar 

  33. J.D. Monk (1976): Mathematical Logic, Springer-Verlag.

    Google Scholar 

  34. E.-R. Olderog & C.A.R. Hoare (1986): Specification-Oriented Semantics for Communicating Processes. Acta Informatica 23, pp. 9–66.

    Google Scholar 

  35. I.C.C. Phillips (1987): Refusal Testing. Theoretical Computer Science 50, pp. 241–284.

    Article  Google Scholar 

  36. V.R. Pratt (1986): Modelling Concurrency with Partial Orders. International Journal of Parallel Programming 15(1), pp. 33–71.

    Article  Google Scholar 

  37. D.T. Sannella & A. Tarlecki (1988): Toward Formal Development of Programs from Algebraic Specifications: Implementations Revisited. Acta Informatica 25, pp. 233–281.

    Article  Google Scholar 

  38. D.T. Sannella & M. Wirsing (1983): A kernel language for algebraic specification and implementation (extended abstract). In: Proc. Intl. Conf. on Foundations of Computation Theory, Borgholm (M. Karpinski, ed.), LNCS 158, pp. 413–427, long version: Report CSR-131-83, Dept. of Computer Science, Univ. of Edinburgh, 1983.

    Google Scholar 

  39. F.W. Vaandrager (1986): Verification of Two Communication Protocols by Means of Process Algebra. Report CS-R8608, Centrum voor Wiskunde en Informatica, Amsterdam.

    Google Scholar 

  40. F.W. Vaandrager (1986): Process algebra semantics of POOL. Report CS-R8629, Centrum voor Wiskunde en Informatica, Amsterdam, to appear in: Applications of Process Algebra, (J.C.M. Baeten, ed.), CWI Monograph, North-Holland, 1988.

    Google Scholar 

  41. F.W. Vaandrager (1988): Some Observations on Redundancy in a Context. Report CSR8812, Centrum voor Wiskunde en Informatica, Amsterdam, to appear in: Applications of Process Algebra, (J.C.M. Baeten, ed.), CWI Monograph, North-Holland, 1988.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Martin Wirsing Jan A. Bergstra

Rights and permissions

Reprints and permissions

Copyright information

© 1989 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

van Glabbeek, R., Vaandrager, F. (1989). Modular specifications in process algebra. In: Wirsing, M., Bergstra, J.A. (eds) Algebraic Methods: Theory, Tools and Applications. Algebraic Methods 1987. Lecture Notes in Computer Science, vol 394. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0015049

Download citation

  • DOI: https://doi.org/10.1007/BFb0015049

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-51698-9

  • Online ISBN: 978-3-540-46758-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics