Contracts for concurrency

Piotr Nienaltowski, Bertrand Meyer, Jonathan S. Ostroff
2008 Formal Aspects of Computing  
The SCOOP model extends the Eiffel programming language to provide support for concurrent programming. The model is largely based on the principles of Design by Contract. Nevertheless, the semantics of contracts used in SCOOP is not suitable for concurrent programming because it only allows for restricted reasoning about correctness properties; liveness properties are completely intractable. Additionally, SCOOP does not provide a clear semantics for postconditions. We propose a generalized
more » ... tics of preconditions, postconditions, and invariants that is applicable in concurrent and sequential contexts. We demonstrate how this semantics may be used for reasoning about correctness of SCOOP programs. We also analyze the relation between assertion violations and deadlocks. We illustrate the discussion with several examples. References
doi:10.1007/s00165-007-0063-2 fatcat:vvyx5cjwefg4xn76dueg44kjia