Proceedings ArticleDOI
How (not) to write Java pointer analyses after 2020
Manas Thakur
- pp 134-145
Reads0
Chats0
TLDR
This paper summarizes some such learnings from its author's research to help readers beat the state-of-the-art in (Java) pointer analysis, as they move into their research careers beyond 2020.Abstract:
Despite being a very old discipline, pointer analysis still attracts several research papers every year in premier programming language venues. While a major goal of contemporary pointer analysis research is to improve its efficiency without sacrificing precision, we also see works that introduce novel ways of solving the problem itself. What does this mean? Research in this area is not going to die soon. I too have been writing pointer analyses of various kinds, specially for object-oriented languages such as Java. While some standard ways of writing such analyses are clear, I have realized that there are an umpteen number of nooks and pitfalls that make the task difficult and error prone. In particular, there are several misconceptions and undocumented practices, being aware of which would save significant research time. On the other hand, there are lessons from my own research that might go a long way in writing correct, precise and efficient pointer analyses, faster. This paper summarizes some such learnings, with a hope to help readers beat the state-of-the-art in (Java) pointer analysis, as they move into their research careers beyond 2020.read more
Citations
More filters
Proceedings ArticleDOI
Variational Study of the Impact of Call Graphs on Precision of Android Taint Analysis
Prakash Neupane,Manas Thakur +1 more
TL;DR: In this article , the authors identify common patterns through which information gets tainted in Android applications, aiming to suggest points in the program analysis space that could lead to their detection in a precise yet efficient manner.
References
More filters
Proceedings ArticleDOI
LLVM: a compilation framework for lifelong program analysis & transformation
Chris Lattner,Vikram Adve +1 more
TL;DR: The design of the LLVM representation and compiler framework is evaluated in three ways: the size and effectiveness of the representation, including the type information it provides; compiler performance for several interprocedural problems; and illustrative examples of the benefits LLVM provides for several challenging compiler problems.
Book
Advanced Compiler Design and Implementation
TL;DR: Advanced Compiler Design and Implementation by Steven Muchnick Preface to Advanced Topics
Proceedings ArticleDOI
The DaCapo benchmarks: java benchmarking development and analysis
Stephen M. Blackburn,Robin Garner,Chris Hoffmann,Asjad M. Khang,Kathryn S. McKinley,Rotem Bentzur,Amer Diwan,Daniel Feinberg,Daniel Frampton,Samuel Z. Guyer,Martin Hirzel,Antony L. Hosking,Maria Jump,Han Lee,J. Eliot B. Moss,Aashish Phansalkar,Darko Stefanovic,Thomas VanDrunen,Daniel von Dincklage,Ben Wiedermann +19 more
TL;DR: This paper recommends benchmarking selection and evaluation methodologies, and introduces the DaCapo benchmarks, a set of open source, client-side Java benchmarks that improve over SPEC Java in a variety of ways, including more complex code, richer object behaviors, and more demanding memory system requirements.
Proceedings ArticleDOI
Soot: a Java bytecode optimization framework
TL;DR: Soot, a framework for optimizing Java* bytecode, is implemented in Java and supports three intermediate representations for representing Java bytecode: Baf, a streamlined representation of bytecode which is simple to manipulate; Jimple, a typed 3-address intermediate representation suitable for optimization; and Grimp, an aggregated version of Jimple suitable for decompilation.
Program Analysis and Specialization for the C Programming Language
Lars Ole Andersen,Peter Lee +1 more
TL;DR: This thesis presents an automatic partial evaluator for the Ansi C programming language, and proves that partial evaluation at most can accomplish linear speedup, and develops an automatic speedup analysis.