2010
DOI: 10.1145/1707801.1706341
|View full text |Cite
|
Sign up to set email alerts
|

Contracts made manifest

Abstract: Since Findler and Felleisen introduced higher-order contracts , many variants have been proposed. Broadly, these fall into two groups: some follow Findler and Felleisen in using latent contracts, purely dynamic checks that are transparent to the type system; others use manifest contracts, where refinement types record the most recent check that has been applied to each value. These two approaches are commonly assume… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
11
0

Year Published

2011
2011
2019
2019

Publication Types

Select...
3
2
1

Relationship

1
5

Authors

Journals

citations
Cited by 11 publications
(11 citation statements)
references
References 12 publications
0
11
0
Order By: Relevance
“…If labels represent "contexts" for values, then this treats the contract as an independent context. This can be seen as completing some of the future work of Greenberg et al (2010). Belo et al (2011) at once simplify and extend the CBV λ H given here.…”
Section: Related Workmentioning
confidence: 52%
See 1 more Smart Citation
“…If labels represent "contexts" for values, then this treats the contract as an independent context. This can be seen as completing some of the future work of Greenberg et al (2010). Belo et al (2011) at once simplify and extend the CBV λ H given here.…”
Section: Related Workmentioning
confidence: 52%
“…More recently, Findler and Felleisen (2002) introduced a λ-calculus with higher-order contracts. The other label on the This is a longer version of a POPL 2010 paper (Greenberg, M., Pierce, B. C. & Weirich, S. (2010) Contracts made manifest. This term evaluates to 1, since pos 1 returns true.…”
Section: Introductionmentioning
confidence: 99%
“…Other prominent approaches for verifying functional programs include dynamic checking [22] (and its combination with static type-checking [30,31,54]), model-checking [43] and translating functional programs into logic [53].…”
Section: Related Workmentioning
confidence: 99%
“…This higher-order precondition constrains how the sort module can call the function argument cmp, and so is a guarantee provided by sort rather than an obligation on the client. Higherorder contract systems [19,15,22,24,45] support such preconditions by wrapping the cmp argument to enforce this property dynamically.…”
Section: Contract Expressivenessmentioning
confidence: 99%
“…Since then contracts have been used to extend static checking [14,5] and for runtime monitoring of higher-order programs [18]. These investigations have progressed towards more expressive dependent contracts [18,31,24,15]. In contrast, our work moves contract expressiveness in a different-orthogonal-direction where contracts enforce temporal properties.…”
Section: Runtime Verificationmentioning
confidence: 99%