An Extended Account of Contract Monitoring Strategies as Patterns of Communication

Thumbnail Image
Can’t use the file because of accessibility barriers? Contact us

Date

2018-03-07

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

Contract systems have come to play a vital role in many aspects of software engineering. This has resulted in a wide variety of approaches to enforcing contracts—ranging from the straightforward pre-condition and post-condition checking of Eiffel to lazy, optional, and parallel enforcement strategies. Each of these approaches has its merits, but each has required ground-up development of an entire contract monitoring system. We present a unified approach to understanding this variety, while also opening the door to as-yet-undiscovered strategies. By observing that contracts are fundamentally about communication between a program and a monitor, we reframe contract checking as communication between concurrent processes. This brings out the underlying relations between widely studied enforcement strategies, including strict and lazy enforcement as well as concurrent approaches, including new contracts and strategies. We show how each of these can be embedded into a core calculus, and demonstrate a proof (via simulation) of correctness for one such encoding. Finally, we show that our approach suggests new monitoring approaches and contracts not previously expressible.

Description

This record is for a(n) postprint of an article published in Journal of Functional Programming on 2018-03-07; the version of record is available at https://doi.org/10.1017/s0956796818000047.

Keywords

Citation

Swords, Cameron, et al. "An Extended Account of Contract Monitoring Strategies as Patterns of Communication." Journal of Functional Programming, vol. 28, 2018-3-7, https://doi.org/10.1017/s0956796818000047.

Journal

Journal of Functional Programming

DOI

Link(s) to data and video for this item

Relation

Rights

Type