2017
DOI: 10.1145/3158139
|View full text |Cite
|
Sign up to set email alerts
|

Soft contract verification for higher-order stateful programs

Abstract: Software contracts allow programmers to state rich program properties using the full expressive power of an object language. However, since they are enforced at runtime, monitoring contracts imposes significant overhead and delays error discovery. Soft contract verification aims to guarantee all or most of these properties ahead of time, enabling valuable optimizations and yielding a more general assurance of correctness. Existing methods for static contract verification satisfy the needs of more restricted ta… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
23
0

Year Published

2018
2018
2023
2023

Publication Types

Select...
3
2
1

Relationship

2
4

Authors

Journals

citations
Cited by 10 publications
(23 citation statements)
references
References 65 publications
0
23
0
Order By: Relevance
“…We then show an optimizer which soundly removes contracts based on the results of SCV, whose soundness follows directly from the theorems of [Nguyễn et al 2018]. While this model is simple, it demonstrates the essential ideas behind our approach, and shows how the correctness of our optimizer can be derived directly from the soundness of the underlying tools.…”
Section: A Model Of Optimized Gradual Typingmentioning
confidence: 95%
See 4 more Smart Citations
“…We then show an optimizer which soundly removes contracts based on the results of SCV, whose soundness follows directly from the theorems of [Nguyễn et al 2018]. While this model is simple, it demonstrates the essential ideas behind our approach, and shows how the correctness of our optimizer can be derived directly from the soundness of the underlying tools.…”
Section: A Model Of Optimized Gradual Typingmentioning
confidence: 95%
“…Building on a sound and precise higher-order symbolic execution system for a large subset of Racket [Nguyễn et al 2018], SCV-CR eliminates almost all of the contracts generated by Typed Racket across a dozen preexisting benchmarks [Greenman et al 2019]. As shown in Figure 1, after our optimizations, almost no performance overhead remains, despite the presence of catastrophic overhead even in some simple benchmarks we study.…”
Section: Static Verification To Avoid Dynamic Costsmentioning
confidence: 99%
See 3 more Smart Citations