Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Precise concrete type inference for object-oriented languages
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Dynamic versus static optimization techniques for object-oriented languages
Theory and Practice of Object Systems - Special issue: type systems
Vortex: an optimizing compiler for object-oriented languages
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Fast static analysis of C++ virtual function calls
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Modern compiler implementation in Java: basic techniques
Modern compiler implementation in Java: basic techniques
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Advanced compiler design and implementation
Advanced compiler design and implementation
Interprocedural pointer alias analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Data-Flow-Based Virtual Function Resolution
SAS '96 Proceedings of the Third International Symposium on Static Analysis
Alias analysis for exceptions in Java
ACSC '02 Proceedings of the twenty-fifth Australasian conference on Computer science - Volume 4
Alias analysis in Java with reference-set representation for high-performance computing
International Journal of Parallel Programming
Hi-index | 0.01 |
The integration of alias analysis with type information increases the precision of alias detection, especially for inheritance among classes. This paper presents a compile-time flow-sensitive context-insensitive alias analysis algorithm with type information for Java. First, we propose an aliased element representation for an object to compute aliases efficiently. Second, the algorithm computes aliases for shadowed variables by regarding constructors as functions. Third, it performs type inference for each reference variable. The inferred type information increases the precision of subsequent alias analysis by building a complete calling graph, not only for overridden methods but also for both shadowed variables and constructors. Fourth, it presents algorithms to compute aliases for each statement. As a result, the precision and efficiency of the algorithm is improved.