2019
DOI: 10.1007/978-3-030-14805-8_1
|View full text |Cite
|
Sign up to set email alerts
|

Space-Efficient Latent Contracts

Abstract: Standard higher-order contract monitoring breaks tail recursion and leads to space leaks that can change a program's asymptotic complexity; space-efficiency restores tail recursion and bounds the amount of space used by contracts. Space-efficient contract monitoring for contracts enforcing simple type disciplines (a/k/a gradual typing) is well studied. Prior work establishes a space-efficient semantics for manifest contracts without dependency [11]; we adapt that work to a latent calculus with dependency. We g… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
3
0

Year Published

2019
2019
2023
2023

Publication Types

Select...
2
1

Relationship

0
3

Authors

Journals

citations
Cited by 3 publications
(3 citation statements)
references
References 35 publications
0
3
0
Order By: Relevance
“…2019], and Reticulated Python [Vitousek et al 2014], keep some dynamic checking, but give up the full soundness guarantee offered by gradual typing. Yet other systems, such as Safe TypeScript [Rastogi et al 2015], Nom [Muehlboeck and Tate 2017], Thorn [Wrigstad et al 2010], and Dart [Google Inc. 2018], limit interoperability between typed and untyped code to avoid some expensive checks.…”
Section: Static Verification To Avoid Dynamic Costsmentioning
confidence: 99%
See 1 more Smart Citation
“…2019], and Reticulated Python [Vitousek et al 2014], keep some dynamic checking, but give up the full soundness guarantee offered by gradual typing. Yet other systems, such as Safe TypeScript [Rastogi et al 2015], Nom [Muehlboeck and Tate 2017], Thorn [Wrigstad et al 2010], and Dart [Google Inc. 2018], limit interoperability between typed and untyped code to avoid some expensive checks.…”
Section: Static Verification To Avoid Dynamic Costsmentioning
confidence: 99%
“…This includes systems such as Nom [Muehlboeck and Tate 2017] and C# [Bierman et al 2010] that require all data to be created in the typed code and use nominal type tags for dynamic checks. Other systems limit what can flow across boundaries [Google Inc. 2018;Richards et al 2017Richards et al , 2015Swamy et al 2014;Wrigstad et al 2010].…”
Section: Related Workmentioning
confidence: 99%
“…Highcost types may be a symptom of inefficiencies in the translation from types to dynamic checks. Recent calculi for space-efficient contracts (Herman et al, 2010;Garcia, 2013;Greenberg, 2015Greenberg, , 2016Siek et al, 2015a) may provide insight for eliminating proxies. Storing runtime type information in the heap may prove to be more efficient than encoding it with contracts (Rastogi et al, 2015;Siek et al, 2015b).…”
Section: The Future Of Gradual Typingmentioning
confidence: 99%