Formal Aspects of Computing

, Volume 21, Issue 4, pp 363–391 | Cite as

Cameo: an alternative model of concurrency for Eiffel

  • Phillip J. BrookeEmail author
  • Richard F. Paige
Original Article


We present a new concurrency model for the Eiffel programming language. The model is motivated by describing a number of semantic problems with the leading concurrency model for Eiffel, namely SCOOP. Our alternative model aims to preserve the existing behaviour of sequential programs and libraries wherever possible. Comparison with the SCOOP model is made. The concurrency aspects of the alternative model are presented in CSP along with a model of exceptions. The results show that while the new model provides increased parallelism, this comes with the price of increased overhead due to lock management.


Concurrency Formal methods Programming languages Eiffel Alternative to SCOOP Asynchronous exceptions 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. AENV04.
    Arslan V, Eugster P, Nienaltowski P, Vaucouleur P (2004) SCOOP: concurrency made easy. In: Proc. dependable systems: software, computing, networks. Originally a draft paper from ETH Zürich,
  2. BP06.
    Brooke PJ, Paige RF (2006) A critique of SCOOP. In: Paige RF, Brooke PJ (eds) Proc. first international symposium on concurrency, real-time, and distribution in eiffel-like languages (CORDIE), number YCS-TR-405. University of York, YorkGoogle Scholar
  3. BP07a.
    Brooke PJ, Paige RF (2007) Exceptions in concurrent Eiffel. J Object Technol 6(10): 111–126Google Scholar
  4. BP07b.
    Brooke PJ, Paige RF (2007) Lazy exploration and checking of CSP models with CSPsim. In: McEwan AA, Ifill W, Welch PH (eds) Communicating process architectures, pp 33–50Google Scholar
  5. BPJ07.
    Brooke PJ, Paige RF, Jacob JL (2007) A CSP model of Eiffel’s SCOOP. Formal Aspects Comput 19(4): 487–512zbMATHCrossRefGoogle Scholar
  6. Car93.
    Caromel D (1993) Towards a method of object-oriented concurrent programming. CACM 36(9): 99–102Google Scholar
  7. Com00.
    Compton M (2000) SCOOP: an investigation of concurrency in Eiffel. Master’s thesis, Australian National UniversityGoogle Scholar
  8. CZT.
    Community Z (2007) Tools project. visited September 2007
  9. ECM05.
    ECMA-367: Eiffel analysis, design and programming language. ECMA International, June 2005, GenevaGoogle Scholar
  10. FC06.
    Freitas AF, Cavalcanti ALC (2006) Automatic translation from Circus to Java. In: FM 2006, number 4085 in LNCS. Springer, HeidelbergGoogle Scholar
  11. FOP04.
    Fuks O, Ostroff JS, Paige RF (2004) SECG: the SCOOP-to-Eiffel code generator. J Object Technol 3(10): 143–160Google Scholar
  12. Hoa85.
    Hoare CAR (1985) Communicating Sequential Processes. Prentice-Hall International UK, New JerseyGoogle Scholar
  13. MD02.
    Mahony B, Dong JS (2002) Deep semantics links of TCSP and Object-Z: TCOZ approach. Formal Aspects Comput 13(2): 142–160zbMATHCrossRefGoogle Scholar
  14. Mey97.
    Meyer B (1997) Object-oriented software construction, 2nd edn. Prentice Hall, New JerseyzbMATHGoogle Scholar
  15. Nie05.
    Nienaltowski P SCOOPLI implementation, 2005.
  16. Nie07.
    Nienaltowski P (2007) Practical framework for contract-based concurrent object-oriented programming. PhD Thesis, ETH ZürichGoogle Scholar
  17. NMO08.
    Nienaltowski P, Meyer B, Ostroff JS (2008) Contracts for concurrency. Formal Aspects Comput. doi: 10.1007/s00165-007-0063-2
  18. OTHS08.
    Ostroff JS, Torshizi F, Huang HF, Schoeller B (2008) Beyond contracts for concurrency. Formal Aspects Comput. doi: 10.1007/s00165-008-0073-8
  19. PO04.
    Paige R, Ostroff J (2004) ERC—an object-oriented refinement calculus for Eiffel. Formal Aspects Comput 16(1)Google Scholar
  20. Ros98.
    Roscoe AW (1998) The Theory and Practice of Concurrency. Series in Computer Science. Prentice Hall, New JerseyGoogle Scholar
  21. Sch00.
    Schneider S (2000) Concurrent and real-time systems. Wiley, New YorkGoogle Scholar
  22. TD97.
    Taft, T, Duff, RA (eds) (1997) Ada 95 Reference Manual. Number 1246 in Lectures Notes in Computer Science. Springer, HeidelbergGoogle Scholar
  23. WC02.
    Woodcock J, Cavalcanti A (2002) The semantics of Circus. In: Proc. ZB, pp 184–203Google Scholar
  24. Wel06.
    Wellings A RECOOP: Real-time concurrent programming with Eiffel. In: Paige RF, Brooke PJ (eds) Proc. first international symposium on concurrency, real-time, and distribution in Eiffel-like languages (CORDIE), number YCS-TR-405, July 2006Google Scholar

Copyright information

© British Computer Society 2008

Authors and Affiliations

  1. 1.School of ComputingUniversity of TeessideMiddlesbroughUK
  2. 2.Department of Computer ScienceUniversity of YorkHeslington,YorkUK

Personalised recommendations