Concurrency Analysis for Java

Concurrency is an integral feature of Java. While there has been recent research [CGS+99,BH99,WR99,Bla99] on devising analyses to eliminate the overhead imposed by synchronization, these analyses do not explicitly track multiple threads of control, nor do they appear particularly well-suited to facilitate other concurrency-related optimizations that may be applicable in a parallel or distributed environment.

[1]  Jyh-Herng Chow,et al.  Compile-time analysis of parallel programs that share memory , 1992, POPL '92.

[2]  Alain Deutsch,et al.  On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifications , 1989, POPL '90.

[3]  Neil D. Jones,et al.  Flow analysis and optimization of LISP-like structures , 1979, POPL.

[4]  Nevin Heintze,et al.  Set-based analysis of ML programs , 1994, LFP '94.

[5]  Marc Feeley,et al.  Storage use analysis and its applications , 1996, ICFP '96.

[6]  Ole Agesen The Cartesian Product Algorithm: Simple and Precise Type Inference Of Parametric Polymorphism , 1995, ECOOP.

[7]  David Grove,et al.  Fast interprocedural class analysis , 1998, POPL '98.

[8]  David B. MacQueen,et al.  The Definition of Standard ML (Revised) , 1997 .

[9]  Mauricio J. Serrano,et al.  Thin locks: featherweight synchronization for Java , 1998, PLDI '98.

[10]  Suresh Jagannathan,et al.  Analyzing stores and references in a parallel symbolic language , 1994, LFP '94.

[11]  Urs Hölzle,et al.  Removing unnecessary synchronization in Java , 1999, OOPSLA '99.

[12]  Bruno Blanchet,et al.  Escape analysis for object-oriented languages: application to Java , 1999, OOPSLA '99.

[13]  Suresh Jagannathan,et al.  A unified treatment of flow analysis in higher-order languages , 1995, POPL '95.

[14]  Jong-Deok Choi,et al.  Escape analysis for Java , 1999, OOPSLA '99.

[15]  Martin C. Rinard,et al.  Compositional pointer and escape analysis for Java programs , 1999, OOPSLA '99.

[16]  Olin Shivers,et al.  Control-flow analysis of higher-order languages of taming lambda , 1991 .

[17]  Emin Gün Sirer,et al.  Static Analyses for Eliminating Unnecessary Synchronization from Java Programs , 1999, SAS.

[18]  Philip Wadler,et al.  A Syntax for Linear Logic , 1993, MFPS.

[19]  Andrew A. Chien,et al.  Precise concrete type inference for object-oriented languages , 1994, OOPSLA 1994.

[20]  Thomas P. Murtagh,et al.  Lifetime analysis of dynamically allocated objects , 1988, POPL '88.

[21]  Jens Palsberg,et al.  Object-oriented type inference , 1991, OOPSLA 1991.

[22]  Nicolas Mercouroff,et al.  An Algorithm for Analyzing Communicating Processes , 1991, MFPS.