Alias analysis for Java with reference-set representation

Proposes a flow-sensitive, context-insensitive alias analysis in Java that is more efficient and precise than previous analyses in C++. For this, we propose a reference-set alias representation and we present the propagation rules for this representation. For the type determination, the type table is built with reference variables and with all possible types of those variables. We propose an algorithm in a popular iterative loop method with a structural traversal of a context-free grammar. Finally, we show that our reference-set representation has better performance for the alias analysis algorithm than the existing object-pair representation does.

[1]  David Grove,et al.  Call graph construction in object-oriented languages , 1997, OOPSLA '97.

[2]  David Flanagan,et al.  Java in a Nutshell , 1996 .

[3]  Laurie J. Hendren,et al.  Context-sensitive interprocedural points-to analysis in the presence of function pointers , 1994, PLDI '94.

[4]  John Banning,et al.  : An Efficient , 2022 .

[5]  Jong-Deok Choi,et al.  Interprocedural pointer alias analysis , 1999, TOPL.

[6]  Amer Diwan,et al.  Type-based alias analysis , 1998, PLDI.

[7]  GhiyaRakesh,et al.  Context-sensitive interprocedural points-to analysis in the presence of function pointers , 1994 .

[8]  Denis Caromel,et al.  Alias analysis on type inference for class hierarchy in Java , 2001, Proceedings 24th Australian Computer Science Conference. ACSC 2001.

[9]  Monica S. Lam,et al.  Efficient context-sensitive pointer analysis for C programs , 1995, PLDI '95.

[10]  David Detlefs,et al.  Garbage collection and local variable type-precision and liveness in Java virtual machines , 1998, PLDI.

[11]  Denis Caromel,et al.  Towards Seamless Computing and Metacomputing in Java , 1998, Concurr. Pract. Exp..

[12]  Barry K. Rosen Data Flow Analysis for Procedural Languages , 1979, JACM.

[13]  Barbara G. Ryder,et al.  Scalable, flow-sensitive type inference for statically typed object-oriented languages , 1997 .

[14]  Andrew A. Chien,et al.  Precise Concrete Type Inference for Object-Oriented Languages , 1994, OOPSLA.

[15]  Jong-Deok Choi,et al.  Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects , 1993, POPL '93.

[16]  Barbara G. Ryder,et al.  Static Type Determination and Aliasing for C , 1990 .

[17]  CaromelDenis,et al.  Alias analysis on type inference for class hierarchy in Java , 2001 .

[18]  David Grove,et al.  Vortex: an optimizing compiler for object-oriented languages , 1996, OOPSLA '96.

[19]  Martin C. Rinard,et al.  Pointer analysis for multithreaded programs , 1999, PLDI '99.

[20]  David F. Bacon,et al.  Fast static analysis of C++ virtual function calls , 1996, OOPSLA '96.

[21]  David C. Cann,et al.  Compilation techniques for high-performance applicative computation , 1989 .

[22]  P. Carini ReportFlow-Sensitive Type Analysis for C + + , 1995 .

[23]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[24]  Jong-Deok Choi,et al.  Efficient and precise modeling of exceptions for the analysis of Java programs , 1999, PASTE '99.

[25]  Peter R. Cappello,et al.  Javelin: Internet‐based parallel computing using Java , 1997 .

[26]  Eugene W. Myers,et al.  A precise inter-procedural data flow algorithm , 1981, POPL '81.

[27]  Craig Chambers,et al.  Whole-program optimization of object-oriented languages , 1996 .

[28]  Jean-Luc Gaudiot,et al.  Flow-sensitive alias analysis with referred-set representation for Java , 2000, Proceedings Fourth International Conference/Exhibition on High Performance Computing in the Asia-Pacific Region.

[29]  Andrew A. Chien,et al.  Type Directed Cloning for Object-Oriented Programs , 1995, LCPC.

[30]  Barbara G. Ryder,et al.  Interprocedural modification side effect analysis with pointer aliasing , 1993, PLDI '93.

[31]  Chris J. Scheiman,et al.  SuperWeb: research issues in Java-based global computing , 1997, Concurr. Pract. Exp..

[32]  Barbara G. Ryder,et al.  Data-Flow-Based Virtual Function Resolution , 1996, SAS.

[33]  Jens Palsberg,et al.  Object-oriented type inference , 1991, OOPSLA '91.

[34]  Stephen A. Edwards The C Language , 2000 .

[35]  Steven S. Muchnick,et al.  Advanced Compiler Design and Implementation , 1997 .