Transformation Systems and Nondeclarative Properties

Program transformation systems are applied both in program synthesis and in program optimization. For logic programs the "logic" component makes transformations very natural and easy to be studied formally. But, when we move to Prolog programs, the "control" component cannot be ignored. In particular we need to cope with termination properties which are essential for ensuring the reachability of solutions for a given query.We give an overview of the main proposals in the field of transformation systems for logic programs and we emphasize how they cope with those properties of logic programs which are not strictly declarative. We focus in particular on how the transformation can affect the termination of a program.

[1]  Keith L. Clark,et al.  Negation as Failure , 1987, Logic and Data Bases.

[2]  Dino Pedreschi,et al.  Reasoning about Termination of Pure Prolog Programs , 1993, Inf. Comput..

[3]  Sandro Etalle,et al.  Simultaneous Replacement in Normal Programs , 1996, J. Log. Comput..

[4]  Torben Amtoft Unfold/fold Transformations Preserving Termination Properties , 1992, PLILP.

[5]  Annalisa Bossi,et al.  Programs Without Failures , 1997, LOPSTR.

[6]  Steven David Prestwich,et al.  The PADDY Partial Deduction System , 1992 .

[7]  John Potter,et al.  Characterisation of Terminating Logic Programs , 1986, SLP.

[8]  Yves Deville,et al.  Logic programming - systematic program development , 1990, International series in logic programming.

[9]  Danny De Schreye,et al.  Controlling generalization and polyvariance in partial deduction of normal logic programs , 1998, TOPL.

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

[11]  Cliff B. Jones,et al.  Systematic Program Development , 1986 .

[12]  Dino Pedreschi,et al.  Studies in Pure Prolog: Termination , 1990 .

[13]  Alberto Pettorossi,et al.  Total correctness of a goal replacement rule based on the unfold/fold proof method , 1994, GULP-PRODE.

[14]  Sandro Etalle,et al.  Transforming Normal Programs by Replacement , 1992, META.

[15]  Wlodzimierz Drabent,et al.  Inductive Assertion Method for Logic Programs , 1987, Theoretical Computer Science.

[16]  John P. Gallagher,et al.  A Transformation System for Definite Programs Based on Termination Analysis , 1994, LOPSTR.

[17]  Neil D. Jones,et al.  Stepwise Development of Operational and Denotational Semantics for Prolog , 1984, International Conference on Spoken Language Processing.

[18]  Steven David Prestwich,et al.  An Unfold Rule for Full Prolog , 1992, LOPSTR.

[19]  Lawrence Cavedon,et al.  Continuity, Consistency, and Completeness Properties for Logic Programs , 1989, ICLP.

[20]  Annalisa Bossi,et al.  Basic Transformation Operations which Preserve Computed Answer Substitutions of Logic Programs , 1993, J. Log. Program..

[21]  Chandrabose Aravindan,et al.  On the Correctness of Unfold/Fold Transformation of Normal and Extended Logic Programs , 1995, J. Log. Program..

[22]  Alberto Pettorossi,et al.  Transformation of Logic Programs: Foundations and Techniques , 1994, J. Log. Program..

[23]  M. Sørensen,et al.  Conjunctive Partial Deduction: Foundations, Control, Algorithms, and Experiments , 1999, J. Log. Program..

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

[25]  Michele Bugliesi,et al.  Partial Evaluation in Prolog: Some Improvements about Cut , 1989, NACLP.

[26]  M. Baudinet Logic programming semantics: techniques and applications , 1989 .

[27]  Giorgio Levi,et al.  A Model-Theoretic Reconstruction of the Operational Semantics of Logic Programs , 1993, Inf. Comput..

[28]  Hirohisa Seki,et al.  Unfold/Fold Transformation of General Logic Programs for the Well-Founded Semantics , 1993, J. Log. Program..

[29]  Annalisa Bossi,et al.  Replacement Can Preserve Termination , 1996, LOPSTR.

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

[31]  Chandrabose Aravindan,et al.  Partial Deduction of Logic Programs wrt Well-Founded Semantics , 1992, ALP.

[32]  Grigoris Antoniou,et al.  Well-Founded Semantics , 1997 .

[33]  John C. Shepherdson,et al.  Unfold/fold transformations of logic programs , 1992, Mathematical Structures in Computer Science.

[34]  Yves Deville Logic programming , 1990 .

[35]  Sandro Etalle,et al.  Transforming acyclic programs , 1994, TOPL.

[36]  Robert A. Kowalski,et al.  Algorithm = logic + control , 1979, CACM.

[37]  Alberto Pettorossi,et al.  Semantics preserving transformation rules for Prolog , 1991, PEPM '91.

[38]  中川 裕志,et al.  UNFOLD/FOLD TRANSFORMATION OF STRATIFIED PROGRAMS , 1989 .

[39]  Sandro Etalle,et al.  Transformation of Left Terminating Programs: the Reordering Problem , 1995, LOPSTR.

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

[41]  Hisao Tamaki,et al.  Transformational Logic Program Synthesis , 1984, FGCS.

[42]  Michael J. Maher Correctness of a Logic Program Transformation System , 1987 .

[43]  Sandro Etalle,et al.  Transformation of Left Terminating Programs , 1999, LOPSTR.

[44]  Sandro Etalle,et al.  Termination of Well-Moded Programs , 1999, J. Log. Program..

[45]  Annalisa Bossi,et al.  Preserving Universal Termination through Unfold/Fold , 1994, ALP.