## Logic program specialisation (1999)

### Cached

### Download Links

- [www.stups.uni-duesseldorf.de]
- [www.stups.uni-duesseldorf.de]
- DBLP

### Other Repositories/Bibliography

Venue: | Partial Evaluation: Practice and Theory, LNCS 1706 |

Citations: | 18 - 11 self |

### BibTeX

@INPROCEEDINGS{Leuschel99logicprogram,

author = {Michael Leuschel},

title = {Logic program specialisation},

booktitle = {Partial Evaluation: Practice and Theory, LNCS 1706},

year = {1999},

pages = {155--188},

publisher = {Springer-Verlag}

}

### Years of Citing Articles

### OpenURL

### Abstract

### Citations

768 | Constraint Logic Programming: A Survey
- Jaffar, Maher
- 1994
(Show Context)
Citation Context ...uction for a set of atoms, to produce it for a set of constrained atoms. A constrained atom is a formula of the form C ✷ A, where A is an ordinary atom and C a constraint over some domain D (see also =-=[21]-=-). The set of “proper” instances (called concretisations) of a constrained atom C ✷ A are then all the atoms Aθ such that Cθ holds in D. [31] then achieves the preservation of characteristic trees by ... |

400 | Deforestation: Transforming programs to eliminate trees
- Wadler
- 1990
(Show Context)
Citation Context ...shed in a single traversal. 3.2 Deforestation In this section we show how conjunctive partial deduction can be used to get rid of intermediate data structures, something which is called deforestation =-=[49]-=-.s← append(X, Y, I) ∧ append(I, Z, R) ✟ ❍ (1) ✟ ✟ ❍❍❍❥ (2) ✟✙ ← append(Y, Z, R) ← append(X ′ , Y, I ′ ) ∧ append([H|I ′ ], Z, R) (2) ❄ ← append(X ′ , Y, I ′ ) ∧ append(I ′ , Z, R ′ ) Fig. 7. SLD-tree ... |

286 | Abstract Interpretation and Applications to Logic Programs
- Cousot, Cousot
- 1994
(Show Context)
Citation Context ...or tupling in logic programming one often needs an additional analysis to ensure that termination is preserved [3, 2]. 4 Incorporating Abstract Interpretation The main idea of abstract interpretation =-=[8, 4, 20]-=- is to analyse programs by executing them over some abstract domain. This is done in such a way as to ensure termination of the abstract interpretation and to ensure that the so derived results are a ... |

239 |
Partial evaluation in logic programming
- Lloyd, Shepherdson
- 1991
(Show Context)
Citation Context ...iently instantiated. These built-ins are then also registered within the characteristic trees (see [27]). 3 Conjunctive Partial Deduction Partial deduction, based upon the Lloyd-Shepherdson framework =-=[35]-=-, specialises a set of atoms. Even though conjunctions may appear within the SLDNF-trees constructed for these atoms, only atoms are allowed at the global level. In other words, when we stop unfolding... |

194 |
A practical framework for the abstract interpretation of logic programs
- Bruynooghe
- 1991
(Show Context)
Citation Context ...or tupling in logic programming one often needs an additional analysis to ensure that termination is preserved [3, 2]. 4 Incorporating Abstract Interpretation The main idea of abstract interpretation =-=[8, 4, 20]-=- is to analyse programs by executing them over some abstract domain. This is done in such a way as to ensure termination of the abstract interpretation and to ensure that the so derived results are a ... |

168 | The concept of a supercompiler
- Turchin
- 1986
(Show Context)
Citation Context ... the pruning possible for p(a) and p(b) has been preserved: p(X) ← q(X) The approach in [31] is more general and constraints are also propagated globally (i.e., in the terminology of supercompilation =-=[44, 19, 43, 42]-=-, one can “drive negative information”). On the other hand, the method in [33] is conceptually simpler and can handle any unfolding rule as well as normal logic programs, while the concrete algorithm ... |

145 | Tutorial on specialisation of logic programs
- Gallagher
- 1993
(Show Context)
Citation Context ...interest of (also) examining the “essential structure” of the SLDNF-trees generated for the atoms to be partially deduced. This leads to the definition of characteristic trees, initially presented in =-=[13, 12]-=- and later exploited in [31, 33], which abstracts SLDNF-trees by only remembering, for the non-failing branches 1 : 1 The failing branches do not materialise within the residual code and it is not int... |

139 | Transformation of logic programs: Foundations and techniques
- Pettorossi, Proietti
- 1994
(Show Context)
Citation Context ...deduction is incapable of translating multiple visits of the same data structure into a single visit (called tupling); something which can be achieved using unfold/fold program transformation methods =-=[39]-=-. To overcome this limitation, [32, 17, 27] present a minimal extension to partial deduction, called conjunctive partial deduction. This technique extends the standard partial deduction approach by si... |

121 |
Deriving descriptions of possible values of program variables by means of abstract interpretation
- Janssens, Bruynooghe
- 1992
(Show Context)
Citation Context ...at a query ← app last(L, X) only produces answers where X = a. Unfortunately, this is not the case. Even more surprisingly, most abstract interpretation techniques proposed in the literature, such as =-=[22, 15, 37]-=-, on their own are incapable of deriving this result. This is a very simple example where a statically known value (a) is stored (using append) in an unknown datastructure (L) and then later consulted... |

99 | Waal. Fast and precise regular approximations of logic programs
- Gallagher, de
- 1994
(Show Context)
Citation Context ...at a query ← app last(L, X) only produces answers where X = a. Unfortunately, this is not the case. Even more surprisingly, most abstract interpretation techniques proposed in the literature, such as =-=[22, 15, 37]-=-, on their own are incapable of deriving this result. This is a very simple example where a statically known value (a) is stored (using append) in an unknown datastructure (L) and then later consulted... |

78 | A Positive Supercompiler
- Sørensen, Glück, et al.
- 1996
(Show Context)
Citation Context ... the pruning possible for p(a) and p(b) has been preserved: p(X) ← q(X) The approach in [31] is more general and constraints are also propagated globally (i.e., in the terminology of supercompilation =-=[44, 19, 43, 42]-=-, one can “drive negative information”). On the other hand, the method in [33] is conceptually simpler and can handle any unfolding rule as well as normal logic programs, while the concrete algorithm ... |

77 | Global Flow Analysis as a Practical Compilation Tool
- Hermenegildo, Warren, et al.
- 1992
(Show Context)
Citation Context ...or tupling in logic programming one often needs an additional analysis to ensure that termination is preserved [3, 2]. 4 Incorporating Abstract Interpretation The main idea of abstract interpretation =-=[8, 4, 20]-=- is to analyse programs by executing them over some abstract domain. This is done in such a way as to ensure termination of the abstract interpretation and to ensure that the so derived results are a ... |

73 |
Towards an automated tupling strategy
- Chin
- 1993
(Show Context)
Citation Context ...ve partial deduction can perform deforestation and tupling, supercompilation [19, 43] is incapable of achieving tupling. On the other hand, the techniques developed for tupling of functional programs =-=[5, 6]-=- are incapable of performing deforestation. The reason for this extra power conferred by conjunctive partial deduction, is that conjunctions with shared variables can be used both to elegantly represe... |

63 |
The derivation of an algorithm for program specialisation
- Gallagher, Bruynooghe
- 1991
(Show Context)
Citation Context ...interest of (also) examining the “essential structure” of the SLDNF-trees generated for the atoms to be partially deduced. This leads to the definition of characteristic trees, initially presented in =-=[13, 12]-=- and later exploited in [31, 33], which abstracts SLDNF-trees by only remembering, for the non-failing branches 1 : 1 The failing branches do not materialise within the residual code and it is not int... |

57 |
Controlling generalisation and polyvariance in partial deduction of normal logic programs
- Leuschel, Martens, et al.
- 1998
(Show Context)
Citation Context ... “essential structure” of the SLDNF-trees generated for the atoms to be partially deduced. This leads to the definition of characteristic trees, initially presented in [13, 12] and later exploited in =-=[31, 33]-=-, which abstracts SLDNF-trees by only remembering, for the non-failing branches 1 : 1 The failing branches do not materialise within the residual code and it is not interesting to know how a certain b... |

50 |
The ecce partial deduction system and the dppd library of benchmarks. Available via http://www.cs.kuleuven.ac.be/~lpai
- Leuschel
(Show Context)
Citation Context ...orphic embedding relation ✂ to work on characteristic trees. The techniques formally elaborated in [33] have led to the implementation of the ecce partial deduction system which is publicly available =-=[26]-=-. Extensive experiments are reported on in [33, 27]. The ecce system also handles a lot of Prolog built-ins, like for instance =, is, <, =<, <, >=, number, atomic, call, \==, \=. All built-ins are sup... |

45 |
Parameterized partial evaluation
- Consel, Khoo
- 1993
(Show Context)
Citation Context ..., L) ← max(X, M) ∧ length(X, L) (2) max(X, M) ← max 1(X, 0, M) (3) max1([ ], M, M) ←s(4) max1([H|T ], N, M) ← H ≤ N ∧ max1(T, N, M) (5) max1([H|T ], N, M) ← H > N ∧ max1(T, H, M) (6) length([ ], 0) ← =-=(7)-=- length([H|T ], L) ← length(T, K) ∧ L is K + 1 Let us try to specialise this program for calls to max length(x, m, l), which calculate the length and maximum element of a list. One can see that the or... |

44 | Partial Deduction and Driving are Equivalent
- Glück, Sørensen
- 1994
(Show Context)
Citation Context ...tations is a topic of further research, see [24, 27]). 3.5 Conjunctive Partial Deduction and Supercompilation Partial deduction and related techniques in functional programming are often very similar =-=[18]-=- (and cross-fertilisation has taken place). Actually, conjunctive partial deduction has in part been inspired by supercompilation of functional programming (and by unfold/fold transformation technique... |

42 | Redundant argument filtering of logic programs
- Leuschel, Srensen
- 1996
(Show Context)
Citation Context ...nstructed, and if we are not interested in its value, then this is an unnecessary overhead. This can be remedied through a post-processing phase called redundant argument filtering (RAF) presented in =-=[34, 27]-=-. The resulting specialised program then contains the original append program P as well as: (3 ′ ) da([ ], Y, Z, R) ← append(Y, Z, R) (4 ′ ) da([H|X ′ ], Y, Z, [H|R ′ ]) ← da(X ′ , Y, Z, R ′ ) The unn... |

41 | Conjunctive Partial Deduction: Foundations, Control, Algorihtms, and Experiments
- Schreye, Glück, et al.
- 1999
(Show Context)
Citation Context ... deduction must include the ability to split a conjunction into several parts, thus producing subconjunctions of the original one (cf. Ex. 6). A method to deal with this problem has been developed in =-=[17, 9]-=-. Apart from this aspect, the conventional control notions described earlier also apply in a conjunctive setting. Notably, the concept of characteristic trees can be generalised to handle conjunctions... |

36 |
Most specific logic programs
- Marriott, Naish, et al.
- 1990
(Show Context)
Citation Context ...unctive partial deduction (the latter can also propagate goal dependent information). Let us illustrate how conjunctive partial deduction combined with a simple abstract interpretation technique from =-=[36]-=- does solve Ex. 8. Starting from the atom app last(X) and using straightforward control for conjunctive partial deduction [24], we can obtain S = { app last(X), append(L, [a], R) ∧ last(R, X) } and th... |

34 | De Schreye. Logic program specialisation: How to be more specific
- Leuschel, D
- 1996
(Show Context)
Citation Context ...d it is often felt that there is a close relationship between abstract interpretation and program specialisation. Recently, there has been a lot of interest in the integration of these two techniques =-=[30, 23, 41, 40, 47, 29, 48]-=-. In this section we illustrate, on a simple example in the context of logic programming, why this integration is a worthwhile goal. Example 8. Take the following simple program: app last(L, X) ← appe... |

32 |
The applicability of logic program analysis and transformation to theorem proving
- Waal, Gallagher
- 1994
(Show Context)
Citation Context ...nsure that the so derived results are a safe approximation of the programs’ concrete runtime behaviour(s). Abstract interpretation has already been used successfully as a post-processing optimisation =-=[10, 14, 11]-=- and it is often felt that there is a close relationship between abstract interpretation and program specialisation. Recently, there has been a lot of interest in the integration of these two techniqu... |

32 | Controlling conjunctive partial deduction of definite logic programs
- Gluck, Jrgensen, et al.
- 1996
(Show Context)
Citation Context ...ng multiple visits of the same data structure into a single visit (called tupling); something which can be achieved using unfold/fold program transformation methods [39]. To overcome this limitation, =-=[32, 17, 27]-=- present a minimal extension to partial deduction, called conjunctive partial deduction. This technique extends the standard partial deduction approach by simply considering a set S = {C1, . . . , Cn}... |

30 |
de Waal. A conceptual embedding of folding into partial deduction: Towards a maximal integration
- Leuschel, Schreye, et al.
- 1996
(Show Context)
Citation Context ...ng multiple visits of the same data structure into a single visit (called tupling); something which can be achieved using unfold/fold program transformation methods [39]. To overcome this limitation, =-=[32, 17, 27]-=- present a minimal extension to partial deduction, called conjunctive partial deduction. This technique extends the standard partial deduction approach by simply considering a set S = {C1, . . . , Cn}... |

27 | Conjunctive partial deduction in practice
- Jrgensen, Leuschel, et al.
- 1996
(Show Context)
Citation Context ...rate solely on efficiency concerns (not duplicating the expensive exp(¯s)). Conjunctive partial deduction therefore diminishes the need for aggressive unfolding rules (a claim empirically verified in =-=[24, 27]-=-) and allows to reconcile precision and efficiency. 3.4 Global Control and Implementation A termination problem specific to conjunctive partial deduction lies in the possible appearance of ever growin... |

27 | Program Specialisation and Abstract Interpretation Reconciled
- Leuschel
- 1998
(Show Context)
Citation Context ...d it is often felt that there is a close relationship between abstract interpretation and program specialisation. Recently, there has been a lot of interest in the integration of these two techniques =-=[30, 23, 41, 40, 47, 29, 48]-=-. In this section we illustrate, on a simple example in the context of logic programming, why this integration is a worthwhile goal. Example 8. Take the following simple program: app last(L, X) ← appe... |

26 | Generating Transformers for Deforestation and Supercompilation - Glück, Jørgensen - 1994 |

26 | Metacomputation: Metasystem transitions plus supercompilation - Turchin - 1996 |

25 |
Supporting transformations for the partial evaluation of logic programs
- Benkerimi, Hill
- 1993
(Show Context)
Citation Context ...been preserved. An abstraction operator allowing just one version per predicate would have failslost this local specialisation, while a method with unlimited polyvariance (called dynamic renaming, in =-=[1]-=-) does not terminate. For this example, our approach provides a terminating and fine grained control of polyvariance, conferring just as many polyvariant versions as necessary. ← rev([a|B], [], R) ❄ (... |

25 | Advanced Techniques for Logic Program Specialisation
- Leuschel
- 1997
(Show Context)
Citation Context ...ristic trees. The techniques formally elaborated in [33] have led to the implementation of the ecce partial deduction system which is publicly available [26]. Extensive experiments are reported on in =-=[33, 27]-=-. The ecce system also handles a lot of Prolog built-ins, like for instance =, is, <, =<, <, >=, number, atomic, call, \==, \=. All built-ins are supposed to be declarative and their selection delayed... |

25 | Program Transformation With Metasystem Transitions - Turchin - 1993 |

24 | Ecological partial deduction: Preserving characteristic trees without constraints
- Leuschel
- 1995
(Show Context)
Citation Context ...lost and – termination of Algorithm 3.1 in [28] can be undermined (even assuming a finite number of characteristic trees). Two different solutions to this problem are: 1. Ecological Partial Deduction =-=[25, 33]-=- The basic idea is to simply impose characteristic trees on the generalised atoms. To solve Ex. 4 one would produce the generalisation p(X) on which we impose τ = {〈1 ◦ 1〉} (this is denoted by (p(X), ... |

22 |
Combining abstract interpretation and partial evaluation
- Jones
- 1997
(Show Context)
Citation Context ...d it is often felt that there is a close relationship between abstract interpretation and program specialisation. Recently, there has been a lot of interest in the integration of these two techniques =-=[30, 23, 41, 40, 47, 29, 48]-=-. In this section we illustrate, on a simple example in the context of logic programming, why this integration is a worthwhile goal. Example 8. Take the following simple program: app last(L, X) ← appe... |

21 | Schreye. Constrained partial deduction and the preservation of characteristic trees
- Leuschel, De
- 1998
(Show Context)
Citation Context ... “essential structure” of the SLDNF-trees generated for the atoms to be partially deduced. This leads to the definition of characteristic trees, initially presented in [13, 12] and later exploited in =-=[31, 33]-=-, which abstracts SLDNF-trees by only remembering, for the non-failing branches 1 : 1 The failing branches do not materialise within the residual code and it is not interesting to know how a certain b... |

18 |
P.: “Specialization of a Unification Algorithm
- Waal, Gallagher
- 1992
(Show Context)
Citation Context ...nsure that the so derived results are a safe approximation of the programs’ concrete runtime behaviour(s). Abstract interpretation has already been used successfully as a post-processing optimisation =-=[10, 14, 11]-=- and it is often felt that there is a close relationship between abstract interpretation and program specialisation. Recently, there has been a lot of interest in the integration of these two techniqu... |

17 |
Live-structure dataflow analysis for prolog
- Mulkers, Winsborough, et al.
- 1994
(Show Context)
Citation Context ...at a query ← app last(L, X) only produces answers where X = a. Unfortunately, this is not the case. Even more surprisingly, most abstract interpretation techniques proposed in the literature, such as =-=[22, 15, 37]-=-, on their own are incapable of deriving this result. This is a very simple example where a statically known value (a) is stored (using append) in an unknown datastructure (L) and then later consulted... |

16 |
Tupling functions with multiple recursion parameters
- Chin, Khoo
- 1993
(Show Context)
Citation Context ...ve partial deduction can perform deforestation and tupling, supercompilation [19, 43] is incapable of achieving tupling. On the other hand, the techniques developed for tupling of functional programs =-=[5, 6]-=- are incapable of performing deforestation. The reason for this extra power conferred by conjunctive partial deduction, is that conjunctions with shared variables can be used both to elegantly represe... |

16 |
de Waal. Deletion of redundant unary type predicates from logic programs
- Gallagher, A
- 1993
(Show Context)
Citation Context ...We illustrate the problem through a slightly artificial, but very simple example. Example 5. The following is the reverse with accumulating parameter of Ex. 3 where a list type check (in the style of =-=[14]-=-) on the accumulator has been added. (1) rev([], Acc, Acc) ← (2) rev([H|T ], Acc, Res) ← ls(Acc), rev(T, [H|Acc], Res)s← rev(L, [], R) (1) � ❅ (2) �✠ ❅❘ ✷ ← ls([]), rev(T, [H], R) (1) � �✠ ✷ (3) ❄ ← r... |

15 | Transformation of Left Terminating Programs: The Reordering Problem
- Bossi, Cocco, et al.
- 1995
(Show Context)
Citation Context ...such as rp(InL, OutL) ∧ rp(InR, OutR). This means that to actually achieve deforestation or tupling in logic programming one often needs an additional analysis to ensure that termination is preserved =-=[3, 2]-=-. 4 Incorporating Abstract Interpretation The main idea of abstract interpretation [8, 4, 20] is to analyse programs by executing them over some abstract domain. This is done in such a way as to ensur... |

13 |
Issues in the partial evaluation of meta-interpreters
- Owen
- 1988
(Show Context)
Citation Context ...estation. 3.3 Diminished Need for Aggressive Local Control In addition to enabling tupling- and deforestation-like optimisations, conjunctive partial deduction also solves a problem already raised in =-=[38]-=-. Take for example a metainterpreter containing the clause solve(X) ← exp(X)∧clause(X, B)∧solve(B),swhere exp(X) is an expensive test which for some reason cannot be (fully) unfolded. Here “classical”... |

13 | Abstract Specialization and its Application to Program Parallelization
- Puebla, Hermenegildo
- 1997
(Show Context)
Citation Context |

12 | Towards integrating partial evaluation in a specialization framework based on generic abstract interpretation
- Puebla, Gallagher, et al.
- 1997
(Show Context)
Citation Context |

9 | Replacement can Preserve Termination
- Bossi, Cocco
- 1996
(Show Context)
Citation Context ...such as rp(InL, OutL) ∧ rp(InR, OutR). This means that to actually achieve deforestation or tupling in logic programming one often needs an additional analysis to ensure that termination is preserved =-=[3, 2]-=-. 4 Incorporating Abstract Interpretation The main idea of abstract interpretation [8, 4, 20] is to analyse programs by executing them over some abstract domain. This is done in such a way as to ensur... |

7 | Bottom up information propagation for partial deduction
- Vanhoof
- 1997
(Show Context)
Citation Context |

4 | Vlaminck. Specialising the other way around
- Vanhoof, Martens, et al.
- 1998
(Show Context)
Citation Context |