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].
Preview
Unable to display preview. Download preview PDF.
References
P. America (1985): Definition of the programming language POOL-T. ESPRIT project 415, Doc. Nr. 91, Philips Research Laboratories, Eindhoven.
D. Austry & G. Boudol (1984): Algèbre de processus et synchronisations. Theoretical Computer Science 30(1), pp. 91–131.
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.
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.
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.
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.
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.
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.
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.
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.
J.A. Bergstra & J.W. Klop (1984): Process algebra for synchronous communication. I&C 60(1/3), pp. 109–137.
J.A. Bergstra & J.W. Klop (1985): Algebra of communicating processes with abstraction. Theoretical Computer Science 37(1), pp. 77–121.
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.
J.A. Bergstra & J.W. Klop: ACPτ: A Universal Axiom System for Process Specification. This volume.
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.
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.
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.
M. Broy (1987): Views of Queues. Report MIP-8704, Fakultät für Mathematik und Informatik, Universität Passau.
CHILL (1980): Recommendation Z.200 (CHILL Language Definition). CCITT Study Group XI.
R. De Nicola & M. Hennessy (1984): Testing equivalences for processes. Theoretical Computer Science 34, pp. 83–134.
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.
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.
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.
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.
C.A.R. Hoare (1985): Communicating Sequential Processes, Prentice-Hall International.
He Jifeng & C.A.R. Hoare (1987): Algebraic specification and proof of a distributed recovery algorithm. Distributed Computing 2(1), pp. 1–12.
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.
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.
S. Mauw (1987): An algebraic specification of process algebra, including two examples. This volume.
S. Mauw & G.J. Veltink (1988): A Process Specification Formalism. Report P8814, Programming Research Group, University of Amsterdam.
R. Milner (1980): A Calculus of Communicating Systems, LNCS 92, Springer-Verlag.
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.
J.D. Monk (1976): Mathematical Logic, Springer-Verlag.
E.-R. Olderog & C.A.R. Hoare (1986): Specification-Oriented Semantics for Communicating Processes. Acta Informatica 23, pp. 9–66.
I.C.C. Phillips (1987): Refusal Testing. Theoretical Computer Science 50, pp. 241–284.
V.R. Pratt (1986): Modelling Concurrency with Partial Orders. International Journal of Parallel Programming 15(1), pp. 33–71.
D.T. Sannella & A. Tarlecki (1988): Toward Formal Development of Programs from Algebraic Specifications: Implementations Revisited. Acta Informatica 25, pp. 233–281.
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.
F.W. Vaandrager (1986): Verification of Two Communication Protocols by Means of Process Algebra. Report CS-R8608, Centrum voor Wiskunde en Informatica, Amsterdam.
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.
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.
Author information
Authors and Affiliations
Editor information
Rights 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