Abstract
The current informal semantics of the simple concurrent object-oriented programming (SCOOP) mechanism for Eiffel is described. We construct and discuss a model using the process algebra CSP. This model gives a more formal semantics for SCOOP than existed previously.
We implement the model mechanically via a new tool called CSPsim. We examine two semantic variations of SCOOP: when and how far to pass locks, and when to wait for child calls to complete. We provide evidence that waiting for child calls to complete both unnecessarily reduces parallelism without any increase in safety and increases deadlocks involving callbacks.
Through the creation and analysis of the model, we identify a number of ambiguities relating to reservations and the underlying run-time system and propose means to resolve them.
Similar content being viewed by others
References
Bailly A (2004) Formal semantics and proof systems for SCOOP, draft paper
Brooke PJ, Paige RF (2006) An alternative model of concurrency for Eiffel. In: Paige RF, Brooke PJ (eds) Proceedings of the 1st international symposium on concurrency, real-time, and distribution in Eiffel-like languages (CORDIE), number YCS-TR-405, University of York
Brooke PJ, Paige RF (2007) Exceptions in concurrent Eiffel. J Object Technol (to appear)
Caromel D (1993) Towards a method of object-oriented concurrent programming. Commun ACM 36(9):90–102
Compton M (2000) SCOOP: an investigation of concurrency in Eiffel. MSc Thesis, Australian National University
ECMA-367 (2005) Eiffel analysis, design and programming language, Ecma International
Formal Systems (Europe) Ltd (1995) Failures-divergence refinement: FDR 2. http://www.formal.demon.co.uk/
Freitas AF, Cavalcanti ALC (2006) Automatic translation from Circus to Java. In: Proceedings of the FM 2006, LNCS 4085. Springer, Heidelberg
Fuks O, Ostroff JS, Paige RF (2004) SECG: the SCOOP-to-Eiffel code generator. J Object Technol 3(10):143–160
Graphviz—Graph Visualization Software. http://www.graphviz.org/, last visited 10th October 2006
Hoare CAR (1985) Communicating sequential processes. Prentice Hall, Englewood Cliffs
Mahony B, Dong JS (2002) Deep semantic links of TCSP and object-Z: TCOZ approach. Formal Asp Comput J 13:142–160
Matsuoka S, Taura K, Yonezawa A (1993) Highly efficient and encapsulated re-use of synchronization code in concurrent object-oriented languages. In: Proceedings of the OOPSLA ’93
Meyer B (1997) Object-oriented software construction, 2nd edn. Prentice Hall, Englewood Cliffs
Nienaltowski P, Arslan V, Meyer B (2004) SCOOP: concurrent programming made easy, draft paper, http://www.se.inf.ethz.ch/people/nienaltowski/papers/scoop_easy_draft.pdf
Nienaltowski P, Meyer B (2005) SCOOPLI implementation, http://www.se.inf.ethz.ch/research/scoop.html
Nienaltowski P (ed) (2005) Proceedings of first SCOOP workshop, ETH Zurich, February 2005
Roscoe AW (1998) The theory and practice of concurrency. In: Series in computer science. Prentice Hall, Englewood Cliffs
Schneider S (2000) Concurrent and real-time systems. Wiley, New York
Taft T, Duff RA (eds) (1997) Ada 95 reference manual. In: Lectures notes in computer science, Vol 1246. Springer, Heidelberg
Woodcock J, Cavalcanti A (2002) The semantics of circus. In: Proceedings of the ZB, pp 184–203
Author information
Authors and Affiliations
Corresponding author
Additional information
M. J. Butler
Rights and permissions
About this article
Cite this article
Brooke, P.J., Paige, R.F. & Jacob, J.L. A CSP model of Eiffel’s SCOOP. Form Asp Comp 19, 487–512 (2007). https://doi.org/10.1007/s00165-007-0033-8
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-007-0033-8