Abstract Interpretation and Object-oriented Programming: Quo Vadis?

The aim of this position paper is to draw a quick overview of the main contributions in abstract interpretation of object-oriented programs, and to draw possible lines of research in this field.

[1]  Agostino Cortesi,et al.  Distinctness and Sharing Domains for Static Analysis of Java Programs , 2001, ECOOP.

[2]  Jens Palsberg,et al.  Scalable propagation-based call graph construction algorithms , 2000, OOPSLA '00.

[3]  Bertrand Meyer,et al.  Object-Oriented Software Construction, 2nd Edition , 1997 .

[4]  Francesco Logozzo,et al.  Class-Level Modular Analysis for Object Oriented Languages , 2003, SAS.

[5]  Keith H. Randall,et al.  Field analysis: getting useful and low-cost interprocedural information , 2000, PLDI '00.

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

[7]  Christian W. Probst,et al.  Modular Control Flow Analysis for Libraries , 2002, SAS.

[8]  Martin C. Rinard,et al.  Purity and Side Effect Analysis for Java Programs , 2005, VMCAI.

[9]  Tim Owen,et al.  Reducing the Cost of Object Boxing , 2004, CC.

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

[11]  Jens Palsberg,et al.  A Denotational Semantics of Inheritance and its Correctness , 1989, OOPSLA.

[12]  Fausto Spoto,et al.  Class Analysis of Object-Oriented Programs through Abstract Interpretation , 2001, FoSSaCS.

[13]  Roberto Giacobazzi,et al.  Refining and Compressing Abstract Domains , 1997, ICALP.

[14]  Deepak Goyal,et al.  Deriving specialized program analyses for certifying component-client conformance , 2002, PLDI '02.

[15]  Barbara G. Ryder,et al.  Parameterized object sensitivity for points-to and side-effect analyses for Java , 2002, ISSTA '02.

[16]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[17]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[18]  Barbara G. Ryder,et al.  Points-to analysis for Java using annotated constraints , 2001, OOPSLA '01.

[19]  Joost-Pieter Katoen,et al.  On a Temporal Logic for Object-Based Systems , 2000, FMOODS.

[20]  Francesco Logozzo,et al.  Automatic Inference of Class Invariants , 2004, VMCAI.

[21]  Pavol Cerný,et al.  Synthesis of interface specifications for Java classes , 2005, POPL '05.

[22]  Lars Ole Andersen,et al.  Program Analysis and Specialization for the C Programming Language , 2005 .

[23]  Simon L. Peyton Jones,et al.  Imperative functional programming , 1993, POPL '93.

[24]  Francesco Logozzo Separate Compositional Analysis of Class-Based Object-Oriented Languages , 2004, AMAST.

[25]  Agostino Cortesi,et al.  Semantic Class Hierarchies by Abstract Interpretation , 2004 .

[26]  Gregg Rothermel,et al.  Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis , 2004 .

[27]  Jens Palsberg,et al.  Making Type Inference Practical , 1992, ECOOP.

[28]  David Detlefs Sun Automatic Inference of Reference-Count Invariants , 2004 .

[29]  Thomas P. Jensen,et al.  Modular Class Analysis with DATALOG , 2003, SAS.

[30]  Erik Ruf,et al.  Effective synchronization removal for Java , 2000, PLDI '00.

[31]  Shmuel Sagiv,et al.  TVLA: A System for Implementing Static Analyses , 2000, SAS.

[32]  David Gay,et al.  Fast Escape Analysis and Stack Allocation for Object-Based Programs , 2000, CC.

[33]  Aneesh Aggarwal,et al.  Related field analysis , 2001, PLDI '01.

[34]  K. Rustan M. Leino,et al.  Houdini, an Annotation Assistant for ESC/Java , 2001, FME.

[35]  Patrick Cousot,et al.  Systematic design of program analysis frameworks , 1979, POPL.

[36]  David Grove,et al.  Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis , 1995, ECOOP.

[37]  Martin C. Rinard,et al.  Write barrier removal by static analysis , 2002, OOPSLA.

[38]  Bor-Yuh Evan Chang,et al.  Abstract Interpretation with Alien Expressions and Heap Structures , 2005, VMCAI.

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

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

[41]  Aske Simon Christensen,et al.  Precise Analysis of String Expressions , 2003, SAS.

[42]  Karel Driesen,et al.  The direct cost of virtual function calls in C++ , 1996, OOPSLA '96.

[43]  Patrick Cousot,et al.  Verification of Embedded Software: Problems and Perspectives , 2001, EMSOFT.

[44]  Francesco Logozzo,et al.  An Approach to Behavioral Subtyping Based on Static Analysis , 2005, TACoS.

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

[46]  Escape Analysis for Java. Theory and Practice , 2003 .

[47]  Michael D. Ernst,et al.  Dynamically discovering likely program invariants , 2000 .

[48]  Fausto Spoto,et al.  Class analyses as abstract interpretations of trace semantics , 2003, TOPL.

[49]  Frédéric Vivien,et al.  Incrementalized pointer and escape analysis , 2001, PLDI '01.

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

[51]  James O. Coplien,et al.  Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications , 1996, OOPSLA 1996.

[52]  BlanchetBruno Escape analysis for object-oriented languages , 1999 .