2019
DOI: 10.1145/3290356
|View full text |Cite
|
Sign up to set email alerts
|

Concerto: a framework for combined concrete and abstract interpretation

Abstract: interpretation promises sound but computable static summarization of program behavior. However, modern software engineering practices pose significant challenges to this vision, specifically the extensive use of frameworks and complex libraries. Frameworks heavily use reflection, metaprogramming, and multiple layers of abstraction, all of which confound even state-of-the-art abstract interpreters. Sound but conservative analysis of frameworks is impractically imprecise, and unsoundly ignoring reflection and me… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1

Citation Types

0
4
0

Year Published

2019
2019
2021
2021

Publication Types

Select...
3
3
1

Relationship

0
7

Authors

Journals

citations
Cited by 8 publications
(4 citation statements)
references
References 51 publications
0
4
0
Order By: Relevance
“…The program-analysis literature provides countless examples of powerful analysis combinations. To name a few, dynamic symbolic execution [29,10] and hybrid fuzzing [45,58,69] combine random testing and symbolic execution, numerous tools broadly combine static and dynamic analysis [6,20,21,49,30,13,14,22,61], and many tools combine different types of static analysis [7,1,34]. In contrast to neuro-aware program analysis, almost all these tools target homogeneous, instead of heterogeneous, systems.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…The program-analysis literature provides countless examples of powerful analysis combinations. To name a few, dynamic symbolic execution [29,10] and hybrid fuzzing [45,58,69] combine random testing and symbolic execution, numerous tools broadly combine static and dynamic analysis [6,20,21,49,30,13,14,22,61], and many tools combine different types of static analysis [7,1,34]. In contrast to neuro-aware program analysis, almost all these tools target homogeneous, instead of heterogeneous, systems.…”
Section: Related Workmentioning
confidence: 99%
“…In contrast to neuro-aware program analysis, almost all these tools target homogeneous, instead of heterogeneous, systems. Concerto [61] is a notable exception that targets applications using frameworks such as Spring and Struts. It combines abstract and concrete interpretation, where, on a high level, concrete interpretation is used to analyze framework code, whereas abstract interpretation is used for application code.…”
Section: Related Workmentioning
confidence: 99%
“…Combined Analysis. The most related previous work is combined analysis that utilizes dynamic analysis during Java static analysis introduced by Toman and Grossman [42]. They proved that their combined analysis is sound and showed that it could significantly improve the precision and performance of Java static analysis by evaluating their tool, Concerto.…”
Section: Related Workmentioning
confidence: 99%
“…Park et al [176] describe an approach which uses dynamic analysis as a shortcut to speed up static analysis of JavaScript. Toman and Grossman [212] combine concrete and abstract interpretation to analyze programs that make extensive use of third party libraries and otherwise inaccessible code. Godefroid et al [99] present DART, a fully automated testing framework that combines static analysis to determine the API of an application with dynamic analysis of generated random tests to analyze the behavior of the application.…”
Section: Combining Static and Dynamic Analysismentioning
confidence: 99%