Contracts for concurrency

  • Authors:
  • Piotr Nienaltowski;Bertrand Meyer;Jonathan S. Ostroff

  • Affiliations:
  • Praxis High Integrity Systems Limited, 20 Manvers Street, BA1 1PX, Bath, UK;ETH Zurich, Zurich, Switzerland;York University, Toronto, Canada

  • Venue:
  • Formal Aspects of Computing - Special Issue: Concurrency and Real-Time for Eiffel-like Languages
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

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.