ACM SIGPLAN Notices · 2011 · 50 citations · 23 references
BusinessComputer ScienceContract TheoryContractsFormal MethodsBreach Of ContractContract EnforcementAssertion CheckingAssertionsContract Enforcement MechanismsContract Execution SemanticsEnforcementHigher-order Functions
Behavioral software contracts supplement interface information with logical assertions. A rigorous enforcement of contracts provides useful feedback to developers if it signals contract violations as soon as they occur and if it assigns blame to violators with preciseexplanations. Correct blame assignment gets programmers started with the debugging process and can significantly decrease the time needed to discover and fix bugs. Sadly the literature on contracts lacks a framework for making statements about the correctness of blame assignment and for validating such statements. This paper fills the gap and uses the framework to demonstrate how one of the proposed semantics for higher-order contracts satisfies this criteria and another semantics occasionally assigns blame to the wrong module. Concretely, the paper applies the framework to the lax enforcement of dependent higher-order contracts and the picky one. A higher-order dependent contract specifies constraints for the domain and range of higher-order functions and also relates arguments and results in auxiliary assertions. The picky semantics ensures that the use of arguments in the auxiliary assertion satisfies the domain contracts and the lax one does not. While the picky semantics discovers more contract violations than the lax one, it occasionally blames the wrong module. Hence the paper also introduces a third semantics, dubbed indy , which fixes the problems of the picky semantics without giving up its advantages.
23
A lattice model of secure information flow
Dorothy E. Denning · Communications of the ACM · 1976 · 1.9K citations · Full text
Call-by-name, call-by-value and the λ-calculus
Gordon Plotkin · Theoretical Computer Science · 1975 · 1.2K citations
A survey of data provenance in e-science
Yogesh Simmhan, Beth Plale, Dennis Gannon · ACM SIGMOD Record · 2005 · 1.2K citations
LCF considered as a programming language
Gordon Plotkin · Theoretical Computer Science · 1977 · 1.1K citations
Information and Software Technology · 1992 · 994 citations