Efficient Reflection String Analysis via Graph Coloring
Static analyses for reflection and other dynamic language features have recently increased in number and advanced in sophistication. Most such analyses rely on a whole-program model of the flow of strings, through the stack and heap. We show that this global modeling of strings remains a major bottleneck of static analyses and propose a compact encoding, in order to battle unnecessary complexity. In our encoding, strings are maximally merged if they can never serve to differentiate class members in reflection operations. We formulate the problem as an instance of graph coloring and propose a fast polynomial-time algorithm that exploits the unique features of the setting (esp. large cliques, leading to hundreds of colors for realistic programs). The encoding is applied to two different frameworks for string-guided Java reflection analysis from past literature and leads to significant optimization (e.g., a ∼ 2x reduction in the number of string-flow inferences), for a whole-program points-to analysis that uses strings.
Sat 21 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
11:00 - 12:40 | |||
11:00 25mResearch paper | Defensive Points-To Analysis: Effective Soundness via Laziness ECOOP Research Papers DOI | ||
11:25 25mResearch paper | Legato: An At-Most-Once Analysis with Applications to Dynamic Configuration Updates ECOOP Research Papers DOI Pre-print | ||
11:50 25mResearch paper | Definite Reference Mutability ECOOP Research Papers Ana Milanova Rensselaer Polytechnic Institute DOI | ||
12:15 25mResearch paper | Efficient Reflection String Analysis via Graph Coloring ECOOP Research Papers Neville Grech University of Athens, George Kastrinis University of Athens, Yannis Smaragdakis University of Athens DOI |