Deriving Transformations for Logic Programs Using Abstract Interpretation

An extension of OLDT based abstract interpretation for definite logic programs is presented. The extension can abstract the behavior of programs under non standard computation rules, i.e. coroutining. The abstract behavior is captured in an EOLDT structure. It is shown that this EOLDT structure can guide an automatic equivalence preserving fold/unfold transformation. By making the appropriate choices during the abstract interpretation phase, one can obtain EOLDT structures which lead to a very broad range of transformations. It is argued that the approach provides a unifying framework for a large class of transformations.

[1]  John W. Lloyd,et al.  Partial Evaluation in Logic Programming , 1991, J. Log. Program..

[2]  John W. Lloyd,et al.  A Partial Evaluation Procedure for Logic Programs , 1990, NACLP.

[3]  Hisao Tamaki,et al.  Unfold/Fold Transformation of Logic Programs , 1984, ICLP.

[4]  L. Vielle,et al.  Recursive query processing: the power of logic , 1989 .

[5]  Robert E. Tarjan,et al.  A Linear-Time Algorithm for Finding All Feedback Vertices , 1978, Inf. Process. Lett..

[6]  Hisao Tamaki,et al.  OLD Resolution with Tabulation , 1986, ICLP.

[7]  Dmitri Boulanger,et al.  Deep Logic Program Transformation Using Abstract Interpretation , 1990, RCLP.

[8]  Maurice Bruynooghe,et al.  Compiling Control , 1989, J. Log. Program..

[9]  Saumya K. Debray,et al.  Unfold/fold transformations and loop optimization of logic programs , 1988, PLDI '88.

[10]  Lutz Plümer Termination Proofs for Logic Programs , 1990, Lecture Notes in Computer Science.

[11]  Hirohisa Seki,et al.  Unfold/Fold Transformations of Stratified Programs , 1991, Theor. Comput. Sci..

[12]  Tadashi Kanamori,et al.  Abstract Interpretation based on OLDT Resolution , 1993, J. Log. Program..

[13]  Giorgio Levi,et al.  Declarative Modeling of the Operational Behavior of Logic Languages , 1989, Theor. Comput. Sci..

[14]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[15]  John Darlington,et al.  A Transformation System for Developing Recursive Programs , 1977, J. ACM.

[16]  J. Lloyd Foundations of Logic Programming , 1984, Symbolic Computation.

[17]  Graem A. Ringwood,et al.  An Algebraic Framework for Abstract Interpretation of Definite Programs , 1990, NACLP.

[18]  Jonathan M. Lever Proving Program Properties by Means of SLS-Resolution , 1991, ICLP.

[19]  Tadashi Kanamori,et al.  Preservation of Stronger Equivalence in Unfold/Fold Logic Program Transformation , 1990, Theor. Comput. Sci..