Abstract
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.
Similar content being viewed by others
References
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, http://se.inf.ethz.ch/people/nienaltowski/papers/scoop_easy_draft.pdf
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, York
Brooke PJ, Paige RF (2007) Exceptions in concurrent Eiffel. J Object Technol 6(10): 111–126
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–50
Brooke PJ, Paige RF, Jacob JL (2007) A CSP model of Eiffel’s SCOOP. Formal Aspects Comput 19(4): 487–512
Caromel D (1993) Towards a method of object-oriented concurrent programming. CACM 36(9): 99–102
Compton M (2000) SCOOP: an investigation of concurrency in Eiffel. Master’s thesis, Australian National University
Community Z (2007) Tools project. http://czt.sourceforge.net/.Last visited September 2007
ECMA-367: Eiffel analysis, design and programming language. ECMA International, June 2005, Geneva
Freitas AF, Cavalcanti ALC (2006) Automatic translation from Circus to Java. In: FM 2006, number 4085 in LNCS. Springer, Heidelberg
Fuks O, Ostroff JS, Paige RF (2004) SECG: the SCOOP-to-Eiffel code generator. J Object Technol 3(10): 143–160
Hoare CAR (1985) Communicating Sequential Processes. Prentice-Hall International UK, New Jersey
Mahony B, Dong JS (2002) Deep semantics links of TCSP and Object-Z: TCOZ approach. Formal Aspects Comput 13(2): 142–160
Meyer B (1997) Object-oriented software construction, 2nd edn. Prentice Hall, New Jersey
Nienaltowski P SCOOPLI implementation, 2005. http://se.inf.ethz.ch/research/scoop.html
Nienaltowski P (2007) Practical framework for contract-based concurrent object-oriented programming. PhD Thesis, ETH Zürich
Nienaltowski P, Meyer B, Ostroff JS (2008) Contracts for concurrency. Formal Aspects Comput. doi:10.1007/s00165-007-0063-2
Ostroff JS, Torshizi F, Huang HF, Schoeller B (2008) Beyond contracts for concurrency. Formal Aspects Comput. doi:10.1007/s00165-008-0073-8
Paige R, Ostroff J (2004) ERC—an object-oriented refinement calculus for Eiffel. Formal Aspects Comput 16(1)
Roscoe AW (1998) The Theory and Practice of Concurrency. Series in Computer Science. Prentice Hall, New Jersey
Schneider S (2000) Concurrent and real-time systems. Wiley, New York
Taft, T, Duff, RA (eds) (1997) Ada 95 Reference Manual. Number 1246 in Lectures Notes in Computer Science. Springer, Heidelberg
Woodcock J, Cavalcanti A (2002) The semantics of Circus. In: Proc. ZB, pp 184–203
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 2006
Author information
Authors and Affiliations
Corresponding author
Additional information
Dong Jin Song and J.C.P. Woodcock
Rights and permissions
About this article
Cite this article
Brooke, P.J., Paige, R.F. Cameo: an alternative model of concurrency for Eiffel. Form Asp Comp 21, 363–391 (2009). https://doi.org/10.1007/s00165-008-0096-1
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-008-0096-1