Abstract
We describe an extension of imperative CSP with primitives to declare new event names and to exchange them by message passing between processes. We give examples in Mobile CSP to motivate the language design, and describe its semantic domain, based on the standard failures-divergences model for CSP, but also recording a dynamic event alphabet. The traces component is identical to the separation logic semantics of Hoare & O’Hearn. Our novel contribution is a semantics for mobile channels in CSP, described in Unifying Theories of Programming, that supports: compositionality with other language paradigms; channel faults, nondeterminism, deadlock, and livelock; multi-way synchronisation; and many-to-many channels. We compare and contrast our semantics with other approaches, including the \(\pi \)-calculus, and consider implementation issues. As well as modelling reconfigurable systems, our extension to CSP provides semantics for techniques such as dynamic class-loading and the full use of dynamic dispatching and delegation.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Bjørndalen, J., et al.: PyCSP - CSP for Python. In: McEwan, A., et al. (eds.) CPA, pp. 229–248 (2007)
Buschmann, F.: Pattern-Oriented Software Architecture. Wiley, New York (1996)
Sherif, A., Woodcock, J., Butterfield, A.: Slotted-Circus. In: Davies, J., Gibbons, J. (eds.) IFM 2007. LNCS, vol. 4591, pp. 75–97. Springer, Heidelberg (2007)
Woodcock, J., Cavalcanti, A.: A tutorial introduction to CSP in unifying theories of programming. In: Cavalcanti, A., Sampaio, A., Woodcock, J. (eds.) PSSE 2004. LNCS, vol. 3167, pp. 220–268. Springer, Heidelberg (2006)
Cavalcanti, A.: Unifying classes and processes. SoSyM 4(3), 277–296 (2005)
Cavalcanti, A., et al.: Safety-critical Java in Circus. In: Wellings, A., et al. (eds.) JTRES, pp. 20–29 (2011)
Woodcock, J., Cavalcanti, A., Wellings, A.: The safety-critical Java memory model: a formal account. In: Butler, M., Schulte, W. (eds.) FM 2011. LNCS, vol. 6664, pp. 246–261. Springer, Heidelberg (2011)
Cavalcanti, A., et al.: The safety-critical Java memory model formalised. Formal Asp. Comput. 25(1), 37–57 (2013)
Cavalcanti, A., et al.: Safety-critical Java programs from Circus models. Real-Time Syst. 49(5), 614–667 (2013)
Fischer, C.: Combining object-Z and CSP. In: Wolisz, A., et al. (eds.) Formale Beschreibungstechniken für verteilte Systeme. GMD-Studien, vol. 315, pp. 119–128 (1997)
Hoare, C.A.R.: Communicating Sequential Processes. Prentice Hall, Upper Saddle River (1985)
Hoare, C.A.R., He, J.: Unifying Theories of Programming. Prentice Hall, Englewood Cliffs (1998)
Hoare, T., O’Hearn, P.W.: Separation logic semantics for communicating processes. ENTCS 212, 3–25 (2008)
ISO: ISO, IEC, 2012 Information technology - Prog. languages - Ada, 8652 (2012)
Karsai, G.: Unification or integration? the challenge of semantics in heterogeneous modeling languages. In: Combemale, B., et al. (eds.) The Globalization of Modeling Languages, pp. 2–6 (2014)
Li, X., Jifeng, H., Liu, Z.: rCOS: refinement of component and object systems. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2004. LNCS, vol. 3657, pp. 183–221. Springer, Heidelberg (2005)
Meyer, B.: Object-Oriented Software Construction. Prentice Hall, Upper Saddle River (1997)
Milner, R., et al.: A calculus of mobile processes. Inf. Comput. 100, 41–77 (1992)
FDR3 model checker. www.cs.ox.ac.uk/projects/fdr/
Odersky, M.: Programming in Scala. Mountain View, California (2008)
Oliveira, M., et al.: A denotational semantics for Circus. Electr. Notes Theor. Comput. Sci. 187, 107–123 (2007)
Roscoe, A.W.: The Theory and Practice of Concurrency. Prentice Hall, New York (1997)
Roscoe, A.W.: CSP is expressive enough for \(\pi \). In: Jones, C.B., Roscoe, A.E., Wood, K.R. (eds.) Reflections on the Work of C.A.R. Hoare, pp. 371–404. Springer, Heidelberg (2010)
Roscoe, A.W.: Understanding Concurrent Systems. Springer, Heidelberg (2010)
RTCA. Object-oriented technology and related techniques supplement to DO-178C [ED-12C] and DO-178A. Technical report DO-332/ED-217, [ED-109A] (2011)
Schneider, S., Treharne, H.: Communicating B machines. In: Bert, D., Bowen, J.P., C. Henson, M., Robinson, K. (eds.) B 2002 and ZB 2002. LNCS, vol. 2272, p. 416. Springer, Heidelberg (2002)
Sherif, A., et al.: A process algebraic framework for specification and validation of real-time systems. Formal Asp. Comput. 22(2), 153–191 (2010)
Smyth, N.: Communicating Sequential Processes in Ptolemy II. Tech. Memo. UCB/ERL M98/70, Electronics Research Laboratory, Berkeley, December 1998
Sun, J., et al.: Model checking CSP revisited: introducing a process analysis toolkit. In: Margaria, T.T., et al. (eds.) ISoLA, pp. 307–322. Springer, Heidelberg (2008)
Tang, X., et al.: Towards mobile processes in unifying theories. In: SEFM, pp. 44–53(2004)
Tang, X., Woodcock, J.: Travelling processes. In: Kozen, D. (ed.) MPC 2004. LNCS, vol. 3125, pp. 381–399. Springer, Heidelberg (2004)
\({\sf inmos.}\) occam Programming Manual. Prentice Hall (1984)
Schneider, S., Treharne, H.: How to drive a B machine. In: Bowen, J.P., Dunne, S., Galloway, A., King, S. (eds.) B 2000, ZUM 2000, and ZB 2000. LNCS, vol. 1878, p. 188. Springer, Heidelberg (2000)
Vajar, B., et al.: Mobile CSP\(\parallel \)B. In: ECEASST 23 (2009)
Welch, P.H., et al.: The JCSP (CSP for Java) Home Page (1999)
Welch, P.H.: Mobile barriers for \(\sf occam\)-\(\pi \), et al.: semantics, implementation and application. In: Broenink, J.F., et al. (eds.) CPA, pp. 289–316 (2005)
Woodcock, J.: Engineering \(\sf UToPiA\). In: Jones, C., Pihlajasaari, P., Sun, J. (eds.) FM 2014. LNCS, vol. 8442, pp. 22–41. Springer, Heidelberg (2014)
Woodcock, J., et al.: A concurrent language for refinement. In: Butterfield, A., et al. (eds.) 5th Irish Workshop on Formal Methods (2001)
Woodcock, J., Cavalcanti, A.: The semantics of Circus. In: Bert, D., Bowen, J.P., C. Henson, M., Robinson, K. (eds.) B 2002 and ZB 2002. LNCS, vol. 2272, pp. 184–203. Springer, Heidelberg (2002)
Woodcock, J., Cavalcanti, A.: A tutorial introduction to designs in unifying theories of programming. In: Boiten, E.A., Derrick, J., Smith, G.P. (eds.) IFM 2004. LNCS, vol. 2999, pp. 40–66. Springer, Heidelberg (2004)
Woodcock, J., et al.: Features of CML: A formal modelling language for systems of systems. In: ICOSE, pp. 445–450 (2012)
Zeyda, F., Cavalcanti, A., Wellings, A.: The safety-critical Java mission model: a formal account. In: Qin, S., Qiu, Z. (eds.) ICFEM 2011. LNCS, vol. 6991, pp. 49–65. Springer, Heidelberg (2011)
Acknowledgements
This work has been supported by the EPSRC hiJaC and the EU H2020 INTO-CPS projects. Thanks to Philippa Gardiner for an application of the \(\pi \)-calculus that led to Example 2; to Peter Welch for discussions more than a decade ago on mobile channels in occam- \(\pi \) that led to the semantic model in this paper; and to three anonymous referees for prompting clarifications in the paper.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
Woodcock, J., Wellings, A., Cavalcanti, A. (2016). Mobile CSP. In: Cornélio, M., Roscoe, B. (eds) Formal Methods: Foundations and Applications. SBMF 2015. Lecture Notes in Computer Science(), vol 9526. Springer, Cham. https://doi.org/10.1007/978-3-319-29473-5_3
Download citation
DOI: https://doi.org/10.1007/978-3-319-29473-5_3
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-29472-8
Online ISBN: 978-3-319-29473-5
eBook Packages: Computer ScienceComputer Science (R0)