Modular Class Analysis with DATALOG

DATALOG can be used to specify a variety of class analyses for object-oriented programs as variations of a common framework. In this framework, the result of analysing a class is a set of DATALOG clauses whose least fixpoint is the information analysed for. Modular class analysis of program fragments is then expressed as the resolution of open DATALOG programs. We provide a theory for the partial resolution of sets of open clauses and define a number of operators for reducing such open clauses.

[1]  Barbara G. Ryder,et al.  A Critical Analysis of Incremental Iterative Data Flow Analysis Algorithms , 1990, IEEE Trans. Software Eng..

[2]  Kim Marriott,et al.  Suspension analyses for concurrent logic programs , 1994, TOPL.

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

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

[5]  Amer Diwan,et al.  Simple and effective analysis of statically-typed object-oriented programs , 1996, OOPSLA '96.

[6]  Wolfgang Thomas,et al.  Handbook of Theoretical Computer Science, Volume B: Formal Models and Semantics , 1990 .

[7]  René Rydhof Hansen Flow Logic for Carmel , 2002 .

[8]  Harry G. Mairson,et al.  Undecidable optimization problems for database logic programs , 1993, JACM.

[9]  Matthias Felleisen,et al.  Componential set-based analysis , 1997, TOPL.

[10]  Giorgio Levi,et al.  Models, Unfolding Rules and Fixpoint Semantics , 1988, ICLP/SLP.

[11]  Patrick Cousot,et al.  Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation , 1992, PLILP.

[12]  Jan van Leeuwen,et al.  Handbook of Theoretical Computer Science, Vol. B: Formal Models and Semantics , 1994 .

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

[14]  Jean-Paul Delahaye,et al.  Unfolding, Procedural and Fixpoint Semantics of Logic Programs , 1991, JTASPEFT/WSA.

[15]  Ole Agesen Constraint-Based Type Inference and Parametric Polymorphism , 1994, SAS.

[16]  Laurie J. Hendren,et al.  Optimizing Java Bytecode Using the Soot Framework: Is It Feasible? , 2000, CC.

[17]  Thomas W. Reps,et al.  Demand Interprocedural Program Analysis Using Logic Databases , 1993, Workshop on Programming with Logic Databases , ILPS.

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

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

[20]  Maurizio Gabbrielli,et al.  A Compositional Semantics for Logic Programs , 1994, Theor. Comput. Sci..

[21]  Jeffrey D. Ullman,et al.  Principles Of Database And Knowledge-Base Systems , 1979 .

[22]  Flemming Nielson,et al.  Control-Flow Analysis in Cubic Time , 2001, ESOP.

[23]  David Grove,et al.  A framework for call graph construction algorithms , 2001, TOPL.

[24]  Jens Palsberg,et al.  Object-oriented type systems , 1994, Wiley professional computing.

[25]  A. Tarski A LATTICE-THEORETICAL FIXPOINT THEOREM AND ITS APPLICATIONS , 1955 .

[26]  Roberto Giacobazzi,et al.  Compositional analysis of modular logic programs , 1993, POPL '93.

[27]  Ashok K. Chandra,et al.  Optimal implementation of conjunctive queries in relational data bases , 1977, STOC '77.

[28]  Krzysztof R. Apt,et al.  Introduction to Logic Programming , 1988 .

[29]  Patrick Cousot,et al.  Modular Static Program Analysis , 2002, CC.

[30]  Fausto Spoto,et al.  Logic programs as compact denotations , 2003, Comput. Lang. Syst. Struct..

[31]  Jeffrey D. Ullman,et al.  Principles of Database and Knowledge-Base Systems, Volume II , 1988, Principles of computer science series.

[32]  Mihalis Yannakakis,et al.  Equivalences Among Relational Expressions with the Union and Difference Operators , 1980, J. ACM.

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

[34]  Oded Shmueli,et al.  Decidability and expressiveness aspects of logic queries , 1987, XP7.52 Workshop on Database Theory.

[35]  Maurizio Gabbrielli,et al.  The s-Semantics Approach: Theory and Applications , 1994, J. Log. Program..

[36]  Jørn Lind-Nielsen,et al.  BuDDy : A binary decision diagram package. , 1999 .

[37]  Barbara G. Ryder,et al.  Data-flow analysis of program fragments , 1999, ESEC/FSE-7.

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

[39]  Jacques Noyé,et al.  Accurate binding-time analysis for imperative languages: flow, context, and return sensitivity , 1997 .