This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: Strictly Declarative Specification of Sophisticated Points-to Analyses Martin Bravenboer Yannis Smaragdakis Department of Computer Science University of Massachusetts, Amherst Amherst, MA 01003, USA [email protected] [email protected] Abstract We present the D oop framework for points-to analysis of Java programs. D oop builds on the idea of specifying pointer analysis algorithms declaratively, using Datalog: a logic- based language for defining (recursive) relations. We carry the declarative approach further than past work by describ- ing the full end-to-end analysis in Datalog and optimizing aggressively using a novel technique specifically targeting highly recursive Datalog programs. As a result, D oop achieves several benefits, including full order-of-magnitude improvements in runtime. We compare D oop with Lhot´ak and Hendren’s P addle , which defines the state of the art for context-sensitive analyses. For the exact same logical points-to definitions (and, consequently, identi- cal precision) D oop is more than 15x faster than P addle for a 1-call-site sensitive analysis of the DaCapo benchmarks, with lower but still substantial speedups for other important analyses. Additionally, D oop scales to very precise analyses that are impossible with P addle and Whaley et al.’s bddbddb, directly addressing open problems in past literature. Finally, our implementation is modular and can be easily configured to analyses with a wide range of characteristics, largely due to its declarativeness. Categories and Subject Descriptors F.3.2 [ Logics and Meanings of Programs ]: Semantics of Programming Languages—Program Analysis; D.1.6 [ Programming Techniques ]: Logic Programming General Terms Algorithms, Languages, Performance 1. Introduction Points-to (or pointer ) analysis intends to answer the question “what objects can a program variable point to?” This ques- tion forms the basis for practically all higher-level program Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and / or a fee. OOPSLA 2009, October 25–29, 2009, Orlando, Florida, USA. Copyright c 2009 ACM 978-1-60558-734-9 / 09 / 10. . . $10.00 analyses. It is, thus, not surprising that a wealth of research has been devoted to e ﬃ cient and precise pointer analysis techniques. Context-sensitive analyses are the most common class of precise points-to analyses. Context sensitive analysis approaches qualify the analysis facts with a context abstrac- tion, which captures a static notion of the dynamic context of a method. Typical contexts include abstractions of method call-sites (for a call-site sensitive analysis—the traditional meaning of “context-sensitive”) or receiver objects (for an...
View Full Document
- Winter '11
- Computer Science, Datalog, Doop