Proceedings Article10.1145/1297027.1297059
Inferring aliasing and encapsulation properties for java
Kin-Keung Ma,Jeffrey S. Foster +1 more
- 21 Oct 2007
- Vol. 42, Iss: 10, pp 423-440
TL;DR: This work presents Uno, a novel static analysis for automatically inferring ownership, uniqueness, and other aliasing and encapsulation properties in Java, and finds that some aliasing properties are common, while others, in particular field and argument ownership, are relatively uncommon.
read more
Abstract: There are many proposals for language techniques to control aliasing and encapsulation in object oriented programs, typically based on notions of object ownership and pointer uniqueness. Most of these systems require extensive manual annotations, and thus there is little experience with these properties in large, existing Java code bases. To remedy this situation, we present Uno, a novel static analysis for automatically inferring ownership, uniqueness, and other aliasing and encapsulation properties in Java. Our analysis requires no annotations, and combines an intraprocedural points-to analysis with an interprocedural, demand-driven predicate resolution algorithm. We have applied Uno to a variety of Java applications and found that some aliasing properties, such as temporarily lending a reference to a method, are common, while others, in particular field and argument ownership, are relatively uncommon. As a result, we believe that Uno can be a valuable tool for discovering and understanding aliasing and encapsulation in Java programs.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
•Proceedings Article
Understanding users' preferences for surface gestures
Meredith Ringel Morris,Jacob O. Wobbrock,Andrew D. Wilson +2 more
- 31 May 2010
TL;DR: The findings indicate that participants preferred gestures authored by larger groups of people, such as those created by end-user elicitation methodologies or those proposed by more than one researcher.
321
Static extraction and conformance analysis of hierarchical runtime architectural structure using annotations
Marwan Abi-Antoun,Jonathan Aldrich +1 more
- 25 Oct 2009
TL;DR: In this paper, the authors propose a typecheckable ownership domain annotations that enable a points-to static analysis to extract a sound global object graph that provides architectural abstraction by ownership hierarchy and by types where architecturally significant objects appear near the top of the hierarchy and data structures are further down.
Multiple dispatch in practice
Radu Muschevici,Alex Potanin,Ewan Tempero,James Noble +3 more
- 19 Oct 2008
TL;DR: An empirical study of the use of multiple dispatch in practice is presented, considering six languages that support multiple dispatch, and also investigating the potential for several dispatch in Java programs.
61
Effective interprocedural resource leak detection
Emina Torlak,Satish Chandra +1 more
- 01 May 2010
TL;DR: This paper presents a new tool, Tracker, that performs static analysis to find resource leaks in Java programs and describes the design, implementation and evaluation of Tracker, focusing on the features that make the tool scalable and its output actionable by the user.
Static extraction and conformance analysis of hierarchical runtime architectural structure
Marwan Abi-Antoun
- 01 Jan 2009
TL;DR: This dissertation proposes a novel approach, SCHOLIA*, to extract a hierarchical runtime architecture from an existing object-oriented system, and analyze communication integrity with a target architecture, entirely statically and using typecheckable ownership annotations.
51
References
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
- 16 Oct 2006
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.
Soot: a Java bytecode optimization framework
Raja Vallée-Rai,Phong Co,Etienne Gagnon,Laurie Hendren,Patrick Lam,Vijay Sundaresan +5 more
- 01 Nov 2010
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.
Ownership types for flexible alias protection
David G. Clarke,John Potter,James Noble +2 more
- 01 Oct 1998
TL;DR: Ownership types form a static type system that indicates object ownership, which provides a flexible mechanism to limit the visibility of object references and restrict access paths to objects, thus controlling a system's dynamic topology.
Cloning-based context-sensitive pointer alias analysis using binary decision diagrams
John Whaley,Monica S. Lam +1 more
- 09 Jun 2004
TL;DR: This paper presents the first scalable context-sensitive, inclusion-based pointer alias analysis for Java programs, and develops a system called bddbddb that automatically translates Datalog programs into highly efficient BDD implementations.
Context-sensitive interprocedural points-to analysis in the presence of function pointers
Maryam Emami,Rakesh Ghiya,Laurie Hendren +2 more
- 01 Jun 1994
TL;DR: This paper reports on the design, implementation, and empirical results of a new method for dealing with the aliasing problem in C based on approximating the points-to relationships between accessible stack locations that allows the smooth integration for handling general function pointers in C.
Related Papers (5)
David G. Clarke,John Potter,James Noble +2 more
- 01 Oct 1998
Dave Clarke,Sophia Drossopoulou +1 more
- 04 Nov 2002
Ana Milanova,Jan Vitek +1 more
- 28 Jun 2011
David Greenfieldboyce,Jeffrey S. Foster +1 more
- 21 Oct 2007