A CSP model of Eiffel's SCOOP

P.J. Brooke, R.F. Paige, J.L. Jacob

Research output: Contribution to journalArticlepeer-review


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.

Original languageEnglish
Pages (from-to)487-512
Number of pages25
JournalFormal Aspects of Computing
Issue number4
Publication statusPublished - Nov 2007


  • concurrency
  • formal methods
  • programming languages
  • Eiffel

Cite this