Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation 2019
DOI: 10.1145/3314221.3314634
|View full text |Cite
|
Sign up to set email alerts
|

SLING: using dynamic analysis to infer program invariants in separation logic

Abstract: We introduce a new dynamic analysis technique to discover invariants in separation logic for heap-manipulating programs. First, we use a debugger to obtain rich program execution traces at locations of interest on sample inputs. These traces consist of heap and stack information of variables that point to dynamically allocated data structures. Next, we iteratively analyze separate memory regions related to each pointer variable and search for a formula over predefined heap predicates in separation logic to mod… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
6
0

Year Published

2019
2019
2021
2021

Publication Types

Select...
2
2
2

Relationship

0
6

Authors

Journals

citations
Cited by 13 publications
(7 citation statements)
references
References 40 publications
0
6
0
Order By: Relevance
“…The experimental results show that our tool enhances the capability of existing program verifiers to verify nontrivial heap-based programs. In the future, we might apply our tool to more verifiers and more test subjects as well as compare our tool with other tools, e.g., Predator [13], Forester [21,22], S2 [26], and SLING [30].…”
Section: Discussionmentioning
confidence: 99%
See 1 more Smart Citation
“…The experimental results show that our tool enhances the capability of existing program verifiers to verify nontrivial heap-based programs. In the future, we might apply our tool to more verifiers and more test subjects as well as compare our tool with other tools, e.g., Predator [13], Forester [21,22], S2 [26], and SLING [30].…”
Section: Discussionmentioning
confidence: 99%
“…The closest to our work is approach for invariant inference using dynamic analysis with separation logic abstraction [30]. Similar to our work, it generates invariant based on user-defined predicates (i.e., features in our work).…”
Section: Related Workmentioning
confidence: 99%
“…Furthermore, we aim to ease the requirement of providing program specifications from users. To do that, we could either leverage static analyzers that do not require program specifications, e.g., Infer [2,3], or incorporate specification inference techniques, such as [24,27], to automatically infer program specifications. Finally, as discussed in Sect.…”
Section: Limitation and Future Workmentioning
confidence: 99%
“…In this work, our approach uses a testing oracle instead of a verifier for practical reasons (see also discussion regarding verification oracles in Section 3). There have been various approaches to mining specifications based on automata learning [Alur et al 2005;Ammons et al 2002;Henzinger et al 2005;Whaley et al 2002;Xie et al 2006] or dynamic and symbolic analysis [Astorga et al 2018;Csallner et al 2008;DeFreez et al 2019;Le et al 2019]. The predicate synthesis aspect of our work is similar to the PIE approach [Padhi et al 2016] that proposes feature expression synthesis in order to learn preconditions as well as loop invariants, but not strong/tight contracts.…”
Section: Related Workmentioning
confidence: 99%