## Higher-Order Transformation of Logic Programs (2000)

### Cached

### Download Links

- [users.comlab.ox.ac.uk]
- [spivey.oriel.ox.ac.uk]
- DBLP

### Other Repositories/Bibliography

Venue: | In Proceedings of the Tenth International Workshop on Logic-based Program Synthesis and Transformation (LOPSTR 2000 |

Citations: | 6 - 1 self |

### BibTeX

@INPROCEEDINGS{Seres00higher-ordertransformation,

author = {Silvija Seres and Mike Spivey},

title = {Higher-Order Transformation of Logic Programs},

booktitle = {In Proceedings of the Tenth International Workshop on Logic-based Program Synthesis and Transformation (LOPSTR 2000},

year = {2000},

pages = {57--68},

publisher = {Springer-Verlag}

}

### OpenURL

### Abstract

It has earlier been assumed that a compositional approach to algorithm design and program transformation is somehow unique to functional programming. Elegant theoretical results codify the basic laws of algorithmics within the functional paradigm and with this paper we hope to demonstrate that some of the same techniques and results are applicable to logic programming as well.

### Citations

978 |
Negation as Failure
- Clark
- 1978
(Show Context)
Citation Context ...in logic program transformation, and in thesnal section we discuss related work and suggest directions for future research. 3 The embedding Using a translation technique related to Clark's completion =-=[4]-=-, any logic program can be translated to a set of functions in a lazy functional language in such a way that the declarative semantics of the logic program is preserved. In [11] we describe an impleme... |

54 | Continuation-based program transformation strategies
- Wand
- 1980
(Show Context)
Citation Context ...follows directly from the denition of rev2 . The accumulation program transformation used in this example is closely related to the continuation passing programming style. It is argued informally in [=-=12]-=- that accumulators are often just a data structure representing a continuation function, while [3] gives a survey of many ways of representing accumulators and presents continuations as one of them. F... |

32 | Generic Program Transformation - Moor, Sittampalam - 1999 |

17 | Embedding Prolog in Haskell
- Spivey, Seres
- 1999
(Show Context)
Citation Context ...ementations of logic programs from their specications. We base our transformation methods on a translation of logic programs into lazy functional programs in Haskell that we have described elsewhere [=-=11]-=-. This embedding and a set of algebraic laws valid for the basic combinators of the embedding are sketched in section 3. There are two main advantages in using this functional embedding for logic prog... |

11 |
Logic Programming Semantics: Techniques and Applications
- Baudinet
- 1989
(Show Context)
Citation Context ...y a sort on trees where the intermediate tree data type has been eliminated. 6 Related and further work An embedding of logic programs to a functional setting has been explored by Wand [13], Baudinet =-=[1-=-], Ross [9] and Hinze [6], but with dierent motives. They all pursue an algebraic semantics for logic programming, but they do not attempt to generalise their techniques to transformational strategies... |

11 |
Program derivation via list introduction
- Pettorossi, Proietti
- 1997
(Show Context)
Citation Context ...corresponds to a binary function to be applied to the consecutive list elements, and e denotes the initial element used to start p \rolling". For example, the function foldRList (add ; 0) applied=-= to ([2; 7; 8]-=-; res) produces the predicate r 1 : = 0 & add(8; r 1 ; r 2 ) & add(7; r 2 ; r 3 ) & add(2; r 3 ; res); when invoked with the appropriate input substitution (say the empty one), this predicate has the ... |

7 | The many disguises of accumulation - Boiten - 1991 |

5 | Prological features in a functional setting - axioms and implementations
- Hinze
- 1998
(Show Context)
Citation Context ...the intermediate tree data type has been eliminated. 6 Related and further work An embedding of logic programs to a functional setting has been explored by Wand [13], Baudinet [1], Ross [9] and Hinze =-=[6-=-], but with dierent motives. They all pursue an algebraic semantics for logic programming, but they do not attempt to generalise their techniques to transformational strategies. The examples presented... |

2 |
Using algebraic semantics for proving Prolog termination and transformation
- Ross
- 1991
(Show Context)
Citation Context ...n trees where the intermediate tree data type has been eliminated. 6 Related and further work An embedding of logic programs to a functional setting has been explored by Wand [13], Baudinet [1], Ross =-=[9-=-] and Hinze [6], but with dierent motives. They all pursue an algebraic semantics for logic programming, but they do not attempt to generalise their techniques to transformational strategies. The exam... |

2 |
A semantic algebra for logic programming
- Wand
- 1983
(Show Context)
Citation Context ...ich is basically a sort on trees where the intermediate tree data type has been eliminated. 6 Related and further work An embedding of logic programs to a functional setting has been explored by Wand =-=[13-=-], Baudinet [1], Ross [9] and Hinze [6], but with dierent motives. They all pursue an algebraic semantics for logic programming, but they do not attempt to generalise their techniques to transformatio... |

1 |
Handbook of Logic in Arti Intelligence and Logic Programming, volume 5, chapter Transformation of Logic Programs
- Pettorossi, Proietti
- 1998
(Show Context)
Citation Context ...ng the ecient predicate from the clear but inecient one, in this and similar examples. Arguably the most general transformational technique in logic programming is the \rules and strategies" appr=-=oach [-=-7]. In this technique the rules perform operations such as an unfolding or folding of clause denitions, introduction of new clause denitions, deletion of irrelevant, failing or subsumed clauses, and c... |

1 |
Algebraic Techniques for Logic Programming
- Seres
(Show Context)
Citation Context ...edicate denitions have a unique solution. The proof for the uniqueness ofsxpoints is based on metric spaces and a certain contraction property of guarded predicates. We present this result elsewhere [=-=10-=-]. 4 Example 1: reverse The standard denition of the naive reverse predicate has quadratic time complexity: rev1 (l1 ; l2 ) = (l1 : = nil & l2 : = nil) k (9x ; xs ; ys ! l1 : = cons(x ; xs) & rev1 (xs... |