Islands: aliasing protection in object-oriented languages
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
A safe approximate algorithm for interprocedural aliasing
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Context-sensitive interprocedural points-to analysis in the presence of function pointers
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Unification-based pointer analysis with directional assignments
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Software—Practice & Experience - Special issue on aliasing in object-oriented systems
Alias burying: unique variables without destructive reads
Software—Practice & Experience - Special issue on aliasing in object-oriented systems
Pointer and escape analysis for multithreaded programs
PPoPP '01 Proceedings of the eighth ACM SIGPLAN symposium on Principles and practices of parallel programming
Encapsulating objects with confined types
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Adoption and focus: practical linear types for imperative programming
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
The Java Programming Language
Ownership, encapsulation and the disjointness of type and effect
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Alias annotations for program understanding
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Ownership types for object encapsulation
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Alias Types for Recursive Data Structures
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
Checking and inferring local non-aliasing
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Soot - a Java bytecode optimization framework
CASCON '99 Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research
Cloning-based context-sensitive pointer alias analysis using binary decision diagrams
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
Jedd: a BDD-based relational extension of Java
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
Connecting effects and uniqueness with adoption
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Refinement-based context-sensitive points-to analysis for Java
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Static detection of leaks in polymorphic containers
Proceedings of the 28th international conference on Software engineering
The DaCapo benchmarks: java benchmarking development and analysis
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Ownership and Immutability Inference for UML-Based Object Access Control
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Uniqueness inference for compile-time object deallocation
Proceedings of the 6th international symposium on Memory management
A practical escape and effect analysis for building lightweight method summaries
CC'07 Proceedings of the 16th international conference on Compiler construction
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Uniqueness inference for compile-time object deallocation
Proceedings of the 6th international symposium on Memory management
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Static extraction of sound hierarchical runtime object graphs
Proceedings of the 4th international workshop on Types in language design and implementation
Minimal Ownership for Active Objects
APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
Mostly-Functional Behavior in Java Programs
VMCAI '09 Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
JavaCOP: Declarative pluggable types for java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Effective interprocedural resource leak detection
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Faster alias set analysis using summaries
CC'11/ETAPS'11 Proceedings of the 20th international conference on Compiler construction: part of the joint European conferences on theory and practice of software
TOOLS'11 Proceedings of the 49th international conference on Objects, models, components, patterns
Tunable static inference for generic universe types
Proceedings of the 25th European conference on Object-oriented programming
Programming paradigm driven heap analysis
CC'12 Proceedings of the 21st international conference on Compiler Construction
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Inference and checking of object ownership
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Combining traits with boxes and ownership types in a Java-like setting
Science of Computer Programming
From relational verification to SIMD loop synthesis
Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
Analyzing memory ownership patterns in C libraries
Proceedings of the 2013 international symposium on memory management
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Heap decomposition inference with linear programming
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Aliasing in Object-Oriented Programming
Hi-index | 0.00 |
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.