License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.ECOOP.2018.23
URN: urn:nbn:de:0030-drops-92287
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2018/9228/
Smaragdakis, Yannis ;
Kastrinis, George
Defensive Points-To Analysis: Effective Soundness via Laziness
Abstract
We present a defensive may-point-to analysis approach, which offers soundness even in the presence of arbitrary opaque code: all non-empty points-to sets computed are guaranteed to be over-approximations of the sets of values arising at run time. A key design tenet of the analysis is laziness: the analysis computes points-to relationships only for variables or objects that are guaranteed to never escape into opaque code. This means that the analysis misses some valid inferences, yet it also never wastes work to compute sets of values that are not "complete", i.e., that may be missing elements due to opaque code. Laziness enables great efficiency, allowing a highly precise points-to analysis (such as a 5-call-site-sensitive, flow-sensitive analysis).
Despite its conservative nature, our analysis yields sound, actionable results for a large subset of the program code, achieving (under worst-case assumptions) 34-74% of the program coverage of an unsound state-of-the-art analysis for real-world programs.
BibTeX - Entry
@InProceedings{smaragdakis_et_al:LIPIcs:2018:9228,
author = {Yannis Smaragdakis and George Kastrinis},
title = {{Defensive Points-To Analysis: Effective Soundness via Laziness}},
booktitle = {32nd European Conference on Object-Oriented Programming (ECOOP 2018)},
pages = {23:1--23:28},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-079-8},
ISSN = {1868-8969},
year = {2018},
volume = {109},
editor = {Todd Millstein},
publisher = {Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
address = {Dagstuhl, Germany},
URL = {http://drops.dagstuhl.de/opus/volltexte/2018/9228},
URN = {urn:nbn:de:0030-drops-92287},
doi = {10.4230/LIPIcs.ECOOP.2018.23},
annote = {Keywords: static analysis, soundness, defensive analysis}
}
Keywords: |
|
static analysis, soundness, defensive analysis |
Collection: |
|
32nd European Conference on Object-Oriented Programming (ECOOP 2018) |
Issue Date: |
|
2018 |
Date of publication: |
|
10.07.2018 |