Abstract
The SCOOP model extends the Eiffel programming language to provide support for concurrent programming. The model is based on the principles of Design by Contract. The semantics of contracts used in the original proposal (SCOOP-97) is not suitable for concurrent programming because it restricts parallelism and complicates reasoning about program correctness. 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. We argue that it is indeed a generalisation of the traditional correctness semantics. We also propose a proof technique for concurrent programs which supports proofs-similar to those for traditional non-concurrent programs-of partial correctness and loop termination in the presence of asynchrony. © 2007 British Computer Society.
Author supplied keywords
Cite
CITATION STYLE
Nienaltowski, P., Meyer, B., & Ostroff, J. S. (2009). Contracts for concurrency. Formal Aspects of Computing, 21(4), 305–318. https://doi.org/10.1007/s00165-007-0063-2
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.