Formal Aspects of Computing

, Volume 19, Issue 4, pp 487–512 | Cite as

A CSP model of Eiffel’s SCOOP

  • Phillip J. Brooke
  • Richard F. Paige
  • Jeremy L. Jacob
Original Article


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.


Concurrency Formal methods Programming languages Eiffel SCOOP 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Bai04.
    Bailly A (2004) Formal semantics and proof systems for SCOOP, draft paperGoogle Scholar
  2. Bro06.
    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 YorkGoogle Scholar
  3. Bro07.
    Brooke PJ, Paige RF (2007) Exceptions in concurrent Eiffel. J Object Technol (to appear)Google Scholar
  4. Car93.
    Caromel D (1993) Towards a method of object-oriented concurrent programming. Commun ACM 36(9):90–102CrossRefGoogle Scholar
  5. Com02.
    Compton M (2000) SCOOP: an investigation of concurrency in Eiffel. MSc Thesis, Australian National UniversityGoogle Scholar
  6. EcI05.
    ECMA-367 (2005) Eiffel analysis, design and programming language, Ecma InternationalGoogle Scholar
  7. FSE95.
    Formal Systems (Europe) Ltd (1995) Failures-divergence refinement: FDR 2. Scholar
  8. FC06.
    Freitas AF, Cavalcanti ALC (2006) Automatic translation from Circus to Java. In: Proceedings of the FM 2006, LNCS 4085. Springer, HeidelbergGoogle Scholar
  9. Fuk04.
    Fuks O, Ostroff JS, Paige RF (2004) SECG: the SCOOP-to-Eiffel code generator. J Object Technol 3(10):143–160Google Scholar
  10. Gra06.
    Graphviz—Graph Visualization Software., last visited 10th October 2006Google Scholar
  11. Hoa85.
    Hoare CAR (1985) Communicating sequential processes. Prentice Hall, Englewood CliffszbMATHGoogle Scholar
  12. Mah02.
    Mahony B, Dong JS (2002) Deep semantic links of TCSP and object-Z: TCOZ approach. Formal Asp Comput J 13:142–160zbMATHCrossRefGoogle Scholar
  13. Mat93.
    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 ’93Google Scholar
  14. Mey97.
    Meyer B (1997) Object-oriented software construction, 2nd edn. Prentice Hall, Englewood CliffszbMATHGoogle Scholar
  15. Nie04.
    Nienaltowski P, Arslan V, Meyer B (2004) SCOOP: concurrent programming made easy, draft paper, Scholar
  16. Nie05a.
    Nienaltowski P, Meyer B (2005) SCOOPLI implementation, Scholar
  17. Nie05b.
    Nienaltowski P (ed) (2005) Proceedings of first SCOOP workshop, ETH Zurich, February 2005Google Scholar
  18. Ros98.
    Roscoe AW (1998) The theory and practice of concurrency. In: Series in computer science. Prentice Hall, Englewood CliffsGoogle Scholar
  19. Sch00.
    Schneider S (2000) Concurrent and real-time systems. Wiley, New YorkGoogle Scholar
  20. Taf97.
    Taft T, Duff RA (eds) (1997) Ada 95 reference manual. In: Lectures notes in computer science, Vol 1246. Springer, HeidelbergGoogle Scholar
  21. Woo02.
    Woodcock J, Cavalcanti A (2002) The semantics of circus. In: Proceedings of the ZB, pp 184–203Google Scholar

Copyright information

© British Computer Society 2007

Authors and Affiliations

  • Phillip J. Brooke
    • 1
  • Richard F. Paige
    • 2
  • Jeremy L. Jacob
    • 2
  1. 1.School of ComputingUniversity of TeessideMiddlesbroughUK
  2. 2.Department of Computer ScienceUniversity of YorkHeslington, YorkUK

Personalised recommendations