Sciweavers

JFP
2006

Sound and complete models of contracts

13 years 11 months ago
Sound and complete models of contracts
Even in statically typed languages it is useful to have certain invariants checked dynamically. Findler and Felleisen gave an algorithm for dynamically checking expressive higherorder types called contracts. They did not, however, give a semantics of contracts. The lack of a semantics makes it impossible to define and prove soundness and completeness of the checking algorithm. (Given a semantics, a sound checker never reports violations that do not exist under that semantics; a complete checker is--in principle--able to find violations when violations exist.) Ideally, a semantics should capture what programmers intuitively feel is the meaning of a contract or otherwise clearly point out where intuition does not match reality. In this paper we give an interpretation of contracts for which we prove the FindlerFelleisen algorithm sound and (under reasonable assumptions) complete. While our semantics mostly matches intuition, it also exposes a problem with predicate contracts where an arg...
Matthias Blume, David A. McAllester
Added 13 Dec 2010
Updated 13 Dec 2010
Type Journal
Year 2006
Where JFP
Authors Matthias Blume, David A. McAllester
Comments (0)