p243-bravenboer - Strictly Declarative Specification of...

Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the 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 martin.bravenboer@acm.org yannis@cs.umass.edu 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 Lhotak and Hendrens 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 LanguagesProgram 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 2529, 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 analysisthe traditional meaning of context-sensitive) or receiver objects (for an...
View Full Document

This note was uploaded on 02/24/2012 for the course CSE 503 taught by Professor Davidnotikin during the Winter '11 term at University of Washington.

Page1 / 19

p243-bravenboer - Strictly Declarative Specification of...

This preview shows document pages 1 - 2. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online