Cameo: an alternative model of concurrency for Eiffel

@article{Brooke2008CameoAA,
  title={Cameo: an alternative model of concurrency for Eiffel},
  author={Phillip J. Brooke and Richard F. Paige},
  journal={Formal Aspects of Computing},
  year={2008},
  volume={21},
  pages={363-391}
}
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… 
Prototyping a Concurrency Model
TLDR
This work proposes a methodology for prototyping concurrency models using executable formal specifications, and applies this methodology to SCOOP, an object-oriented concurrency model, to uncover and fix three major flaws in the model.
The SCOOP Concurrency Model in Java-like Languages
TLDR
A design pattern forSCOOP is presented, which makes it feasible to transfer SCOOP’s concepts to different object-oriented programming languages, and tools that support the SCOop design pattern are described, and a concrete example of its use in Java is given.
A Graph-Based Semantics Workbench for Concurrent Asynchronous Programs
TLDR
A "semantics workbench" with fully and semi-automatic tools for Scoop, that can be used to analyse and compare programs with respect to different execution models, based on a modular and parameterisable graph transformation semantics implemented in the Groove tool.
Towards Practical Graph-Based Verification for an Object-Oriented Concurrency Model
TLDR
This work proposes a simple graph transformation system (GTS) based run-time semantics for SCOOP that grasps the most common features of all known semantics of the language and is transferable to GTS models for other concurrent languages and libraries.
Performance analysis of SCOOP programs
TLDR
A performance analyzer is presented that is based on new metrics for programs written in SCOOP, an object-oriented programming model for concurrency, and is used to optimize a concurrent robotic control software.
Compositional reasoning about active objects with shared futures
TLDR
This paper presents a model for asynchronously communicating objects, where return values from method calls are handled by futures, and facilitates invariant specifications over the locally visible communication history of each object.
Towards Practical Graph-Based Verification for an Object-Oriented Concurrency Model
TLDR
CPM—the authors' run-time model for CoreSCOOP—in GROOVE, an established tool for simulating and analysing GTS-based semantics is realised, and the issue of CPM’s soundness is discussed.

References

SHOWING 1-10 OF 34 REFERENCES
A CSP model of Eiffel’s SCOOP
TLDR
A model is constructed using the process algebra CSP that gives a more formal semantics for SCOOP than existed previously and identifies a number of ambiguities relating to reservations and the underlying run-time system and proposes means to resolve them.
Contracts for concurrency
TLDR
This article outlines a new contract semantics which applies equally well in concurrent and sequential contexts and permits a flexible use of contracts for specifying the mutual rights and obligations of clients and suppliers while preserving the potential for parallelism.
Exceptions in Concurrent Eiffel
TLDR
A mechanism to handle aynchronous exceptions via a limited developer choice, including the notion of a failed or dead object, and necessarily introduce a small number of new exceptions is proposed.
SECG: The SCOOP-to-Eiffel Code Generator
TLDR
A general tool is described that takes a Eiffel program that uses the separate keyword and translates it into an EIFFel multi-threaded program that using the Eiffels T HREAD class.
SCOOP An Investigation of Concurrency in Eiffel
TLDR
This is the first research based investigation of the SCOOP concurrency mechanism for Eiffel and also the first publicly-available implementation, and it is shown experimentally that the system is efficient and, for some applications, speed-ups are possible on SMP machines.
Toward a method of object-oriented concurrent programming
TLDR
The model, which makes extensive use of object-oriented techniques such as inheritance and polymorphism, is presented followed by development of the concurrent programming method.
Beyond contracts for concurrency
TLDR
How far contracts can take us in verifying interesting properties of concurrent systems using modular Hoare rules is described and how theorem proving methods developed for sequential Eiffel can be extended to the concurrent case is shown.
The Semantics of Circus
TLDR
The language of Circus is described and the formalisation of its model is described in Hoare & He's unifying theories of programming.
SCOOP - Concurrency Made Easy
TLDR
A survey of SCOOP, including an extended type system for eliminating synchronization defects (improving safety), support for transactional semantics for subcomputations (enforcing atomicity), and an event library for programming real-time concurrent tasks (allowing for predictability).
Deep Semantic Links of TCSP and Object-Z: TCOZ Approach
TLDR
The semantic design of TCOZ, a language blended from Object-Z and TCSP, is discussed, with an infinite trace model used so as to ensure proper account is taken of the potentially unbounded non-determinism allowed by Z schemas.
...
1
2
3
4
...