Proceedings of the 25th International Conference on Compiler Construction 2016
DOI: 10.1145/2892208.2892226
|View full text |Cite
|
Sign up to set email alerts
|

On fast large-scale program analysis in Datalog

Abstract: Designing and crafting a static program analysis is challenging due to the complexity of the task at hand. Among the challenges are modelling the semantics of the input language, finding suitable abstractions for the analysis, and handwriting efficient code for the analysis in a traditional imperative language such as C++. Hence, the development of static program analysis tools is costly in terms of development time and resources for real world languages. To overcome, or at least alleviate the costs of develop… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
45
0

Year Published

2016
2016
2023
2023

Publication Types

Select...
4
3
1

Relationship

2
6

Authors

Journals

citations
Cited by 82 publications
(45 citation statements)
references
References 42 publications
(26 reference statements)
0
45
0
Order By: Relevance
“…We also note here that we tried to use off-the-shelf solvers such as Souffle [62] to solve our Datalog programs. While Souffle finished in all cases, we found that our Python-based solver finished much faster in some cases.…”
Section: Related Workmentioning
confidence: 99%
“…We also note here that we tried to use off-the-shelf solvers such as Souffle [62] to solve our Datalog programs. While Souffle finished in all cases, we found that our Python-based solver finished much faster in some cases.…”
Section: Related Workmentioning
confidence: 99%
“…In RQ1, we consider a 2-object-sensitive pointer (2obj) analysis (with one context element for heap objects) [Milanova et al 2002[Milanova et al , 2005 as the conventional context-sensitive pointer analysis we seek to match in terms of precision. 2obj is regarded as the most practical high-precision pointer analysis for Java [Lhoták and Hendren 2006;Smaragdakis et al 2011;] and is widely adopted in recent literature [Hassanshahi et al 2017;Jeong et al 2017;Scholz et al 2016;Smaragdakis et al , 2014Tan et al 2017;Thiessen and Lhoták 2017] and analysis tools, including popular static analysis frameworks for Android [Arzt et al 2014;Gordon et al 2015]. Relative to other k-object-sensitive analyses, 2obj is significantly more precise than 1obj Smaragdakis et al 2011], and 3obj does not scale for most DaCapo benchmarks [Tan et al 2017].…”
Section: Rq1mentioning
confidence: 99%
“…A naive implementation would be to have two indices defined by the lexicographical orders u and u < v, however, the minimal solution would be to have only one index, namely, u < v as it subsumes the index with only u. Some information to our solution to this combinatorial problem can be found in [13]. The variadic template for the struct Comperator is parametrized by the columns in order.…”
Section: An Example Of the Specialization Processmentioning
confidence: 99%
“…We point the reader to [5] for information on the Java vulnerabilities work at Oracle. For more detailed performance data on the techniques used in SOUFFLÉ , we refer the reader to [13].…”
Section: Case Study: Openjdk7mentioning
confidence: 99%