Enhanced sharing analysis techniques: a comprehensive evaluation

Sharing, an abstract domain developed by D. Jacobs and A. Langen for the analysis of logic programs, derives useful aliasing information. It is well-known that a commonly used core of techniques, such as the integration of Sharing with freeness and linearity information, can signi“cantly improve the precision of the analysis. However, a number of other proposals for re“ned domain combinations have been circulating for years. One feature that is common to these proposals is that they do not seem to have undergone a thorough experimental evaluation even with respect to the expected precision gains. In this paper we experimentally evaluate: helping Sharing with the de“nitely ground variables found using Pos, the domain of positive Boolean formulas; the incorporation of explicit structural information; a full implementation of the reduced product of Sharing and Pos; the issue of reordering the bindings in the computation of the abstract mgu; an original proposal for the addition of a new mode recording the set of variables that are deemed to be ground or free; a re“ned way of using linearity to improve the analysis; the recovery of hidden information in the combination of Sharing with freeness information. Finally, we discuss the issue of whether tracking compoundness allows the computation of more sharing information.

[1]  Pascal Van Hentenryck,et al.  Combinations of abstract domains for logic programming , 1994, POPL '94.

[2]  Andy King,et al.  Depth-k Sharing and Freeness , 1994, ICLP.

[3]  Roberto Bagnara,et al.  Decomposing non-redundant sharing by complementation , 2002, Theory Pract. Log. Program..

[4]  Manuel V. Hermenegildo,et al.  &-Prolog and its Performance: Exploiting Independent And-Parallelism , 1990, ICLP.

[5]  Bart Demoen,et al.  Two Advanced Transormations for Improving the Efficiency of an ILP system , 2000, ILP Work-in-progress reports.

[6]  Roberto Bagnara,et al.  Decomposing Non-redundant Sharing by Complementation , 1999, SAS.

[7]  Manuel V. Hermenegildo,et al.  Compile-Time Derivation of Variable Dependency Using Abstract Interpretation , 1992, J. Log. Program..

[8]  Manuel V. Hermenegildo,et al.  Effectivness of abstract interpretation in automatic parallelization: a case study in logic programming , 1999, TOPL.

[9]  Harald Søndergaard,et al.  An Application of Abstract Interpretation of Logic Programs: Occur Check Reduction , 1986, ESOP.

[10]  Andy King,et al.  A Synergistic Analysis for Sharing and Groundness with Traces Linearity , 1994, ESOP.

[11]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[12]  Dean Jacobs,et al.  Static Analysis of Logic Programs for Independent And-Parallelism , 1992, J. Log. Program..

[13]  D. Jacobs,et al.  Advanced techniques for approximating variable aliasing in logic programs , 1991 .

[14]  RWTHAachen,LehrstuhlfurInformatikII Ahornstrae55,W-5100Aachen,Germany , .

[15]  Manuel V. Hermenegildo,et al.  Effectiveness of Global Analysis in Strict Independence-Based Automatic Parallelization , 1994, ILPS.

[16]  Francesca Scozzari,et al.  Abstract Domains for Sharing Analysis by Optimal Semantics , 2000, SAS.

[17]  Ashwin Srinivasan,et al.  A Note on Two Simple Transformations for Improving the Efficiency of an ILP System , 2000, ILP.

[18]  Michael Codish,et al.  Derivation and Safety of an Abstract Unification Algorithm for Groundness and Aliasing Analysis , 1991, ICLP.

[19]  Gérard Ferrand,et al.  NSTO Programs (Not Subject to Occur-Check) , 1991, ISLP.

[20]  Maurice Bruynooghe,et al.  A composite domain for freeness, sharing, and compoundness analysis of logic programs , 1994 .

[21]  François Bourdoncle,et al.  Efficient chaotic iteration strategies with widenings , 1993, Formal Methods in Programming and Their Applications.

[22]  Roberto Bagnara,et al.  Widening Sharing , 1999, APPIA-GULP-PRODE.

[23]  Roberto Bagnara,et al.  Data-Flow Analysis for Constraint Logic-Based Languages , 1999 .

[24]  Francesca Rossi,et al.  Strict and Nonstrict Independent And-Parallelism in Logic Programs: Correctness, Efficiency, and Compile-Time Conditions , 1995, J. Log. Program..

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

[26]  Agostino Cortesi,et al.  Comparison of Abstract Interpretations , 1992, ICALP.

[27]  Dean Jacobs,et al.  Accurate and Efficient Approximation of Variable Aliasing in Logic Programs , 1989, NACLP.

[28]  Roberto Bagnara,et al.  Set-Sharing is Redundant for Pair-Sharing , 1997, SAS.

[29]  Maurice Bruynooghe,et al.  Abstract Unification for a Composite Domain Deriving Sharing and Freeness Properties of Program Variables , 1994, ICLP Workshop: Verification and Analysis of Logic Languages.

[30]  Gerda Janssens,et al.  Deriving Descriptions of Possible Values of Program Variables by Means of Abstract Interpretation , 1990, J. Log. Program..

[31]  Kim Marriott,et al.  Two Classes of Boolean Functions for Dependency Analysis , 1998, Sci. Comput. Program..

[32]  Roberto Bagnara,et al.  Factorizing Equivalent Variable Pairs in ROBDD-Based Implementations of Pos , 1998, AMAST.

[33]  Manuel V. Hermenegildo,et al.  Extracting Non-Strict Independent And-Parallelism Using Sharing and Freeness Information , 1994, SAS.

[34]  Maurice Bruynooghe,et al.  Freeness, Sharing, Linearity and Correctness - All at Once , 1993, WSA.

[35]  Lobel Crnogorac,et al.  A Comparison of Three Occur-Check Analysers , 1996, SAS.

[36]  Koichi Furukawa,et al.  Proceedings of the eighth international conference on Logic programming , 1991 .

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

[38]  Doug DeGroot,et al.  AND-Parallelism of Logic Programs Based on a Static Data Dependency Analysis , 1985, COMPCON.

[39]  Manuel V. Hermenegildo,et al.  Combined Determination of Sharing and Freeness of Program Variables through Abstract Interpretation , 1991, ICLP.

[40]  Roberto Bagnara,et al.  The Correctness of Set-Sharing , 1998, SAS.

[41]  Agostino Cortesi,et al.  Sharing is Optimal , 1999, J. Log. Program..

[42]  Roberto Bagnara Structural Information Analysis for CLP Languages , 1997, APPIA-GULP-PRODE.

[43]  F. Bourdoncle Semantiques des langages imperatifs d'ordre superieur et interpretation abstraite , 1992 .

[44]  Peter J. Stuckey,et al.  Sharing and groundness dependencies in logic programs , 1999, TOPL.

[45]  Gilberto Filé,et al.  Freeness Analysis for Logic Programs - And Correctness? , 1993, ICLP.

[46]  Roberto Bagnara,et al.  Efficient Structural Information Analysis for Real CLP Languages , 2000, LPAR.

[47]  Gerda Janssens,et al.  On the Practicality of Abstract Equation Systems , 1995, ICLP.

[48]  Dhd Warren,et al.  Logic Programming, Proceedings of the Tenth International Conference on Logic Programming, Budapest, Hungary, June 21-25, 1993 , 1993, ICLP.