ECOOP 2016 (series) / Research Track / Boomerang: Demand-Driven Flow- and Context-Sensitive Pointer Analysis for Java
Boomerang: Demand-Driven Flow- and Context-Sensitive Pointer Analysis for Java
Many current program analyses require highly precise pointer information about small, targeted parts of a given program. This motivates the need for demand-driven pointer analyses that compute information only where required. Pointer analyses generally compute points-to sets of program variables or answer boolean alias queries. However, many client analyses require richer pointer information. For example, taint and typestate analyses often need to know the set of all aliases of a given variable under a certain calling context. With most current pointer analyses, clients must compute such information through repeated points-to or alias queries, increasing complexity and computation time for them. This paper presents Boomerang, a demand-driven, flow-, field-, and context-sensitive pointer analysis for Java programs. Boomerang computes rich results that include both the possible allocation sites of a given pointer (points-to information) and all pointers that can point to those allocation sites (alias information). For increased precision and scalability, clients can query Boomerang with respect to particular calling contexts of interest. Our experiments show that Boomerang is more precise than existing demand-driven pointer analyses. Additionally, using Boomerang, the taint analysis FlowDroid issues up to 29.4x fewer pointer queries compared to using other pointer analyses that return simpler pointer information. Furthermore, the search space of Boomerang can be significantly reduced by requesting calling contexts from the client analysis.
Fri 22 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
Fri 22 Jul
Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
10:30 - 11:45 | Session 7Research Track at Auditorium Loyola Chair(s): Julian Dolby IBM Thomas J. Watson Research Center | ||
10:30 25mTalk | Boomerang: Demand-Driven Flow- and Context-Sensitive Pointer Analysis for Java Research Track Johannes Späth Fraunhofer SIT, Lisa Nguyen Quang Do Fraunhofer IEM, Karim Ali TU Darmstadt, Eric Bodden Heinz Nixdorf Institut, Paderborn University and Fraunhofer IEM Link to publication DOI Pre-print Media Attached | ||
10:55 25mTalk | IceDust: Incremental and Eventual Computation of Derived Values in Persistent Object Graphs Research Track Daco Harkes Delft University of Technology, Danny Groenewegen Delft University of Technology, Eelco Visser Delft University of Technology Link to publication DOI Pre-print Media Attached | ||
11:20 25mTalk | Reference Capabilities for Concurrency Control Research Track Link to publication DOI Pre-print Media Attached |