Abstract
Concerning distributed systems, process algebra plays a role similar to the one lambda calculus takes for sequential systems: phenomena such as deadlock, fairness, causality can be made precise and studied within process calculi. Furthermore, process algebra is applied in the modelling and verification of industrial strength systems. This chapter introduces syntax, semantics, and methods of the process algebra Csp and studies tool support for Csp including simulation, model checking, theorem proving and code-generation. Examples studied include an automated teller machine, a jet engine controller, a fault tolerant communication system, and a self-stabilising system in the form of a mathematical puzzle. Advanced material on the semantic models of Csp, process algebraic equations, denotational semantics for recursive equations, and refinement based proof methods for deadlock, livelock, and determinism conclude the chapter.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Change history
20 December 2022
.
References
Pedro Antonino, Thomas Gibson-Robinson, and A. W. Roscoe. Efficient verification of concurrent systems using synchronisation analysis and SAT/SMT solving. ACM Trans. Softw. Eng. Methodol., 28(3):18:1–18:43, 2019.
Niaz Arijo, Reiko Heckel, Mirco Tribastone, and Stephen Gilmore. Modular performance modelling for mobile applications. In Second Joint WOSP/SIPEW International Conference on Performance Engineering, pages 329–334. ACM, 2011.
Bowen Alpern and Fred B. Schneider. Defining liveness. Inf. Process. Lett., 21(4):181–185, 1985.
Jan A. Bergstra and Jan Willem Klop. Process algebra for synchronous communication. Information and Control, 60(1-3):109–137, 1984.
Bettina Buth, Michel Kouvaras, Jan Peleska, and Hui Shi. Deadlock analysis for a fault-tolerant system. In AMAST, LNCS 1349. Springer, 1997.
Tom Bohman, Oleg Pikhurko, Alan Frieze, and Danny Sleator. Puzzle 6: Uniform candy distribution. http://www.cs.cmu.edu/puzzle/puzzle6.html, Last accessed: August 2021.
Bettina Buth, Jan Peleska, and Hui Shi. Combining methods for the livelock analysis of a fault-tolerant system. In AMAST, LNCS 1548. Springer, 1998.
Ana Cavalcanti and Marie-Claude Gaudel. Testing for refinement in CSP. In 9th International Conference on Formal Engineering Methods, LNCS 4789. Springer, 2007.
Clemens Fischer. CSP-OZ: a combination of object-Z and CSP. In Formal methods for open object-based distributed systems. Chapman & Hall, 1997.
Bill Gardner. Converging CSP specifications and C++ programming via selective formalism. ACM Transactions on Embedded Computing Systems, 4(2), 2005.
Bill Gardner, 2015. http://www.uoguelph.ca/~gardnerw/csp++/, Last accessed August 2021.
Andy Gimblett, Markus Roggenbach, and Bernd-Holger Schlingloff. Towards a formal specification of an electronic payment system in CSP-CASL. In WADT, LNCS 3423. Springer, 2004.
Greg Holland, Temesghen Kahsai, Markus Roggenbach, and Bernd-Holger Schlingloff. Towards formal testing of jet engine rolls-royce BR725. In Proc. 18th Int. Conf on Concurrency, Specification and Programming, Krakow, Poland, pages 217–229, 2009.
Charles Antony Richard Hoare. Communicating Sequential Processes. Prentice Hall, 1985.
Yoshinao Isobe, Faron Moller, Hoang Nga Nguyen, and Markus Roggenbach. Safety and line capacity in railways - an approach in timed CSP. In Integrated Formal Methods, LNCS 7321. Springer, 2012.
Yoshinao Isobe and Markus Roggenbach. Webpage on CSP-Prover. http://staff.aist.go.jp/y-isobe/CSP-Prover/CSP-Prover.html, Last accessed: August 2021.
Yoshinao Isobe and Markus Roggenbach. A generic theorem prover of CSP refinement. In TACAS 2005, LNCS 3440. Springer, 2005.
Yoshinao Isobe and Markus Roggenbach. A complete axiomatic semantics for the CSP stable-failures model. In CONCUR 2006, LNCS 4137. Springer, 2006.
Yoshinao Isobe and Markus Roggenbach. Proof principles of CSP - CSP-Prover in practice. In Dynamics in Logistics. Springer, 2007.
Yoshinao Isobe and Markus Roggenbach. CSP-Prover - a proof tool for the verification of scalable concurrent systems. Japan Society for Software Science and Technology, Computer Software, 25, 2008.
Yoshinao Isobe, Markus Roggenbach, and Stefan Gruner. Extending CSP-Prover by deadlock-analysis: Towards the verification of systolic arrays. In FOSE 2005, Japanese Lecture Notes Series 31. Kindai-kagaku-sha, 2005.
Temesghen Kahsai, Markus Roggenbach, and Bernd-Holger Schlingloff. Specification-based testing for refinement. In SEFM 2007. IEEE Computer Society, 2007.
Temesghen Kahsai, Markus Roggenbach, and Bernd-Holger Schlingloff. Specification-based testing for software product lines. In SEFM 2008. IEEE Computer Society, 2008.
Jiang Liu, Jidong Lv, Zhao Quan, Naijun Zhan, Hengjun Zhao, Chaochen Zhou, and Liang Zou. A calculus for Hybrid CSP. In Programming Languages and Systems, LNCS 6461. Springer, 2010.
Robin Milner. Communication and concurrency. Prentice Hall, 1989.
Jeff Magee and Jeff Kramer. Concurrency: State Models & Java Programs. Wiley, 2nd edition, 2006.
Robin Milner, Joachim Parrow, and David Walker. A calculus of mobile processes, I. Inf. Comput., 100(1), 1992.
Marcel Oliveira, Ana Cavalcanti, and Jim Woodcock. A UTP semantics for Circus. Formal Asp. Comput., 21(1-2), 2009.
J. Ouaknine and J. Worrell. Timed CSP = closed timed \(\varepsilon \)-automata. Nordic Journal of Computing, 10:1–35, 2003.
Jan Peleska and Bettina Buth. Formal methods for the international space station ISS. In Correct System Design, LNCS 1710. Springer, 1999.
Markus Roggenbach. CSP-CASL: A new integration of process algebra and algebraic specification. Theoretical Computer Science, 354(1):42–71, 2006.
A.W. Roscoe. The theory and practice of concurrency. Prentice Hall, 1998.
A. W. Roscoe. On the expressive power of CSP refinement. Formal Aspects of Computing, 17, 2003.
A. W. Roscoe. The three platonic models of divergence-strict CSP. In Theoretical Aspects of Computing, LNCS 5160. Springer, 2008.
A.W. Roscoe. Understanding Concurrent Systems. Springer, 2010.
Bryan Scattergood. The Semantics and Implementation of Machine-Readable CSP, 1998. DPhil thesis, University of Oxford.
Steve A. Schneider. Concurrent and Real-time Systems: the CSP Approach. Wiley, 2000.
Vladimiro Sassone, Mogens Nielsen, and Glynn Winskel. Models for concurrency: Towards a classification. Theor. Comput. Sci., 170(1-2):297–348, 1996.
Steve Schneider and Helen Treharne. CSP theorems for communicating B machines. Formal Asp. Comput., 17(4):390–422, 2005.
R.J. van Glabbeek. The linear time-branching time spectrum I – the semantics of concrete, sequential processes. In Handbook of Process Algebra. Elsevier, 2001.
Peter Welch, Neil Brown, James Moores, Kevin Chalmers, and Bernhard Sputh. Integrating and extending JCSP. In CPA 2007. IOS Press, 2007.
Peter Welch. http://www.cs.kent.ac.uk/projects/ofa/jcsp/, Last accessed: August 2021.
Glynn Winskel. The formal semantics of programming languages: an introduction. MIT Press, 1993.
Kirsten Winter. Model checking railway interlocking systems. Australian Computer Science Communications, 24(1), 2002.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2022 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Roggenbach, M., Shaikh, S.A., Cerone, A. (2022). The Process Algebra CSP. In: Formal Methods for Software Engineering. Texts in Theoretical Computer Science. An EATCS Series. Springer, Cham. https://doi.org/10.1007/978-3-030-38800-3_3
Download citation
DOI: https://doi.org/10.1007/978-3-030-38800-3_3
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-38799-0
Online ISBN: 978-3-030-38800-3
eBook Packages: Computer ScienceComputer Science (R0)