2015
DOI: 10.1145/2775051.2676967
|View full text |Cite
|
Sign up to set email alerts
|

Space-Efficient Manifest Contracts

Abstract: The standard algorithm for higher-order contract checking can lead to unbounded space consumption and can destroy tail recursion, altering a program's asymptotic space complexity. While space efficiency for gradual types-contracts mediating untyped and typed code-is well studied, sound space efficiency for manifest contractscontracts that check stronger properties than simple types, e.g., "is a natural" instead of "is an integer"-remains an open problem.We show how to achieve sound space efficiency for manifes… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

1
12
0

Year Published

2015
2015
2019
2019

Publication Types

Select...
2
2
1

Relationship

2
3

Authors

Journals

citations
Cited by 12 publications
(13 citation statements)
references
References 33 publications
1
12
0
Order By: Relevance
“…We have highlighted in yellow the four syntactic forms relevant to contract checking. This paper paper discusses two modes of λH: classic λH, mode C,and eidetic λH, mode E. Each of these languages uses the syntax of Figure 1, while the typing rules In an extended version of this work, we develop two additional modes with slightly different properties from eidetic λH, filling out a "framework" for spaceefficient manifest contracts [10]. We omit the other two modes here to save space for eidetic λH, which is the only mode that is sound with respect to classic λH.…”
Section: Classic Manifest Contractsmentioning
confidence: 99%
“…We have highlighted in yellow the four syntactic forms relevant to contract checking. This paper paper discusses two modes of λH: classic λH, mode C,and eidetic λH, mode E. Each of these languages uses the syntax of Figure 1, while the typing rules In an extended version of this work, we develop two additional modes with slightly different properties from eidetic λH, filling out a "framework" for spaceefficient manifest contracts [10]. We omit the other two modes here to save space for eidetic λH, which is the only mode that is sound with respect to classic λH.…”
Section: Classic Manifest Contractsmentioning
confidence: 99%
“…Space efficiency for gradual types [24] (a/k/a contracts constrained to type tests) is well studied [14,15,25,9,23]; Greenberg [11] developed a space-efficient semantics for general, non-dependent contracts. He used a manifest calculus, conflating contracts and types; however, contracts are typically implemented in latent calculi, where contracts are distinct from whatever types may exist.…”
Section: Overview and Contributionsmentioning
confidence: 99%
“…The rest of this paper discusses a formulation of contracts that enjoys sound space efficiency; that is, where we slightly change the implementation of contracts so that (a) programs are observationally equivalent to the standard semantics, but (b) contracts consume a bounded amount of space. In this paper, we've omitted some of the more detailed examples and motivation-we refer curious readers to Greenberg [11], though we intend the paper to be self-contained.…”
Section: Fig 1 Contracts Break Tail Recursionmentioning
confidence: 99%
See 2 more Smart Citations