Abstract
In this article we present a model for multiparty contracts in which contract conformance is defined abstractly as a property on traces. A key feature of our model is blame assignment, which means that for a given contract, every breach is attributed to a set of parties. We show that blame assignment is compositional by defining contract conjunction and contract disjunction. Moreover, to specify real-world contracts, we introduce the contract specification language CSL with an operational semantics. We show that each CSL contract has a counterpart in our trace-based model and from the operational semantics we derive a run-time monitor. CSL overcomes limitations of previously proposed formalisms for specifying contracts by supporting: (history sensitive and conditional) commitments, parametrised contract templates, relative and absolute temporal constraints, potentially infinite contracts, and in-place arithmetic expressions. Finally, we illustrate the general applicability of CSL by formalising in CSL various contracts from different domains.
Original language | English |
---|---|
Journal | Journal of Logic and Algebraic Programming |
Volume | 81 |
Issue number | 2 |
Pages (from-to) | 72-98 |
Number of pages | 27 |
ISSN | 2352-2208 |
DOIs | |
Publication status | Published - Feb 2012 |
Event | 4th Workshop on Formal Languages and Analysis of Contract-Oriented Software - Pisa, Italy Duration: 17 Sept 2010 → 18 Sept 2010 Conference number: 4 |
Conference
Conference | 4th Workshop on Formal Languages and Analysis of Contract-Oriented Software |
---|---|
Number | 4 |
Country/Territory | Italy |
City | Pisa |
Period | 17/09/2010 → 18/09/2010 |