Results 1 
9 of
9
A System For Specialising Logic Programs
, 1991
"... This report describes SP, a system for specialising logic programs. The report functions as a user's manual for SP, and also contains the algorithms employed and arguments for their correctness. A number of examples of program specialisation are given in Appendix A. Contents 1 Program Specialisation ..."
Abstract

Cited by 145 (12 self)
 Add to MetaCart
This report describes SP, a system for specialising logic programs. The report functions as a user's manual for SP, and also contains the algorithms employed and arguments for their correctness. A number of examples of program specialisation are given in Appendix A. Contents 1 Program Specialisation 4 2 Transformations in SP 5 3 Unfolding Rules 10 4 Approximation 13 5 The Specialisation Algorithm 16 6 How to Use SP 20 7 Discussion 23 A Examples of Specialisation 28 B Unfoldability Conditions for Builtins 36 1 Program Specialisation SP is a system for specialising logic programs. Before describing the system, it is worth reviewing briefly the aims and interesting applications of program specialisation. To specialise a program is to restrict its behaviour in some way. The purpose of specialisation is to exploit the restriction to gain efficiency. A specialised program is equivalent, within the bounds of the restriction imposed, to the original unspecialised program, but should be ...
Ensuring Global Termination of Partial Deduction while Allowing Flexible Polyvariance
, 1995
"... The control of polyvariance is a key issue in partial deduction of logic programs. Certainly, only finitely many specialised versions of any procedure should be generated, while, on the other hand, overly severe limitations should not be imposed. In this paper, wellfounded orderings serve as a star ..."
Abstract

Cited by 60 (14 self)
 Add to MetaCart
The control of polyvariance is a key issue in partial deduction of logic programs. Certainly, only finitely many specialised versions of any procedure should be generated, while, on the other hand, overly severe limitations should not be imposed. In this paper, wellfounded orderings serve as a starting point for tackling this socalled "global termination" problem. Polyvariance is determined by the set of distinct "partially deduced" atoms generated during partial deduction. Avoiding adhoc techniques, we formulate a quite general framework where this set is represented as a tree structure. Associating weights with nodes, we define a wellfounded order among such structures, thus obtaining a foundation for certified global termination of partial deduction. We include an algorithm template, concrete instances of which can be used in actual implementations, prove termination and correctness, and report on the results of some experiments. Finally, we conjecture that the proposed framewor...
Some LowLevel Source Transformations for Logic Programs
 in Proceedings of Meta90 Workshop on Meta Programming in Logic
, 1990
"... This paper describes an algorithm performing an analysis and transformation of logic programs. The transformation achieves two goals: redundant functors are removed from the program, and procedures may be split into two or more specialised versions handling different cases. It can be applied to most ..."
Abstract

Cited by 30 (9 self)
 Add to MetaCart
This paper describes an algorithm performing an analysis and transformation of logic programs. The transformation achieves two goals: redundant functors are removed from the program, and procedures may be split into two or more specialised versions handling different cases. It can be applied to most logic programming languages, including concurrent logic programming languages, because the transformations perform no unfolding of the program; they only remove some redundant operations within the unifications. The main saving is in heap usage, though time performance may also be improved. One of the main purposes of the transformation is to “clean up ” programs generated by other methods of transformation or synthesis. The analysis is an example of an abstract interpretation, and is guaranteed to terminate. A Prolog implementation of the algorithm, illustrating some metaprogramming techniques, is given and some results are reported.
Partial Evaluation of the "Real Thing"
, 1994
"... In this paper we present a partial evaluation scheme for a "real life" subset of Prolog. This subset contains firstorder builtin's, simple sideeffects and the operational predicate ifthenelse. We outline a denotational semantics for this subset of Prolog and show how partial deduction can be ex ..."
Abstract

Cited by 13 (4 self)
 Add to MetaCart
In this paper we present a partial evaluation scheme for a "real life" subset of Prolog. This subset contains firstorder builtin's, simple sideeffects and the operational predicate ifthenelse. We outline a denotational semantics for this subset of Prolog and show how partial deduction can be extended to specialise programs of this kind. We point out some of the problems not occurring in partial deduction and show how they can be solved in our setting. Finally we provide some results based on an implementation of the above.
Enhancing Partial Deduction via Unfold/Fold Rules
 Proc. LoPSTr '96
, 1996
"... We show that sometimes partial deduction produces poor program specializations because of its limited ability in (i) dealing with conjunctions of recursively defined predicates, (ii) combining partial evaluations of alternative computations, and (iii) taking into account unification failures. We pro ..."
Abstract

Cited by 7 (4 self)
 Add to MetaCart
We show that sometimes partial deduction produces poor program specializations because of its limited ability in (i) dealing with conjunctions of recursively defined predicates, (ii) combining partial evaluations of alternative computations, and (iii) taking into account unification failures. We propose to extend the standard partial deduction technique by using versions of the definition rule and the folding rule which allow us to specialize predicates defined by disjunctions of conjunctions of goals. We also consider a case split rule to take into account unification failures. Moreover, in order to perform program specialization via partial deduction in an automatic way, we propose a transformation strategy which takes as parameters suitable substrategies for directing the application of every transformation rule. Finally, we show through two examples that our partial deduction technique is superior to standard partial deduction. The first example refers to the automatic derivation...
Specialization with Clause Splitting for Deriving Deterministic Constraint Logic Programs
 In Proc. IEEE Conference on Systems, Man and Cybernetics, Hammamet
, 2002
"... The reduction of nondeterminism can increase efficiency when specializing programs. We consider constraint logic programs and we propose a technique which by making use of a new transformation rule, called clause splitting, allows us to generate efficient, specialized programs which are deterministi ..."
Abstract

Cited by 5 (5 self)
 Add to MetaCart
The reduction of nondeterminism can increase efficiency when specializing programs. We consider constraint logic programs and we propose a technique which by making use of a new transformation rule, called clause splitting, allows us to generate efficient, specialized programs which are deterministic. We have applied our technique to the specialization of pattern matching programs.
Automatic Derivation of Logic Programs by Transformation
 Course notes for ESSLLI
, 2000
"... We present the program transformation methodology for the automatic development of logic programs based on the rules + strategies approach. We consider both definite programs and normal programs and we present the basic transformation rules and strategies which are described in the literature. To il ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We present the program transformation methodology for the automatic development of logic programs based on the rules + strategies approach. We consider both definite programs and normal programs and we present the basic transformation rules and strategies which are described in the literature. To illustrate the power of the program transformation approach we also give some examples of program development. Finally, we show how to use program transformations for proving properties of predicates and synthesizing programs from logical specifications.
ET EVALUATION PARTIELLE EN PROLOG presente par
"... Faculte des arts et des sciences Memoire presente alaFaculte des etudes superieures en vue de l'obtention du grade de Ma^tre es sciences (M.Sc.) en informatique ..."
Abstract
 Add to MetaCart
Faculte des arts et des sciences Memoire presente alaFaculte des etudes superieures en vue de l'obtention du grade de Ma^tre es sciences (M.Sc.) en informatique