ECOOP 2018
Sun 15 - Sat 21 July 2018 Amsterdam, Netherlands
co-located with ECOOP and ISSTA
Sat 21 Jul 2018 12:15 - 12:40 at Zurich II - Static Analysis Chair(s): Karim Ali

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 Jul

ecoop-2018-papers
11:00 - 12:40: ECOOP Research Papers - Static Analysis at Zurich II
Chair(s): Karim AliUniversity of Alberta
ecoop-2018-papers11:00 - 11:25
Research paper
Yannis SmaragdakisUniversity of Athens, George KastrinisUniversity of Athens
DOI
ecoop-2018-papers11:25 - 11:50
Research paper
John TomanUniversity of Washington, Seattle, Dan GrossmanUniversity of Washington
DOI Pre-print
ecoop-2018-papers11:50 - 12:15
Research paper
Ana MilanovaRensselaer Polytechnic Institute
DOI
ecoop-2018-papers12:15 - 12:40
Research paper
Neville GrechUniversity of Athens, George KastrinisUniversity of Athens, Yannis SmaragdakisUniversity of Athens
DOI