| Gallagher, J.: 1993, `Specialisation of Logic Programs: A Tutorial'. In: Proceedings PEPM'93, ACM SIGPLAN Symposium on Partial Evaluation and SemanticsBasedProgram Manipulation. Copenhagen, pp. 88#98. |
....generate a new program that computes its result using only the remainder of the input. Since this new program has less computations to perform, in general, it will be more ecient. In the context of logic programming, partial evaluation has been studied mainly under the name of partial deduction [14, 18, 10]. Most partial deduction techniques have been based on the top down evaluation mechanism of logic programming. Partial input is represented by a partially instantiated query and partial SLD derivations are constructed that re ect the computations that are performed during the specialisation ....
J. Gallagher. Specialisation of logic programs: A tutorial. In Proceedings PEPM'93, ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 88-98, Copenhagen, 1993. ACM Press.
....partial deduction strategy. We conjecture that such a combined approach will finally enable good automatic specialisation of meta programs. 1 Introduction Partial deduction is an important transformation technique for logic programs, capable of removing substantial inefficiencies from programs [16, 9, 5]. As an online specialisation technique, it is based on an evaluation mechanism for logic programs. The input to a typical partial deducer is a program and a partially instantiated query. The instantiated part represents the information with respect to which one would like to specialise; the ....
J. Gallagher. Specialisation of logic programs: A tutorial. In Proceedings PEPM'93, ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 88--98, Copenhagen, June 1993. ACM Press.
....Danny De Schreye, Bern Martens Department of Computer Science, K.U.Leuven, Belgium e mail: fwimvh, dannyd, berng cs.kuleuven.ac. be 1 Introduction and Motivation Partial deduction is an important transformation technique for logic programs, capable of removing inefficiencies from programs [3, 4]. As an on line specialisation technique, it is based on an evaluation mechanism for logic programs. The input to a typical partial deducer is a program and a partially instantiated query. The instantiated part represents the information with respect to which one would like to specialise; the ....
J. Gallagher. Specialisation of logic programs: A tutorial. In Proceedings PEPM'93, ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 88--98, Copenhagen, June 1993. ACM Press.
....composing logic programs, we define a bottom up partial deduction operator and prove correctness of the transformation with respect to the S semantics. 1 Introduction Partial deduction is an important transformation technique for logic programs, capable of removing inefficiencies from programs [7, 9, 4]. As an on line specialisation technique, it is based on an evaluation mechanism for logic programs. The input to a typical partial deducer is a program and a partially instantiated query. The instantiated part represents the information with respect to which one would like to specialise; the ....
J. Gallagher. Specialisation of logic programs: A tutorial. In Proceedings PEPM'93, ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 88--98, Copenhagen, June 1993. ACM Press.
....efficient, for some kinds of programs and queries it equals (and sometimes even outperforms) top down evaluation. Program specialisation, in a logic programming setting also called partial deduction, is an important transformation technique capable of removing certain inefficiencies from programs [6, 13, 4]. The basic idea is, given a program and part of its input, to evaluate the program parts that depend on the known input, and generate a new program that computes its result using only the remainder of the input. Since this new program has less computations to perform, in general, it will be more ....
....(top down) partial deduction consists of building a number of different SLD trees that together cover the complete computation of a goal G in a program P and synthesise new program clauses from them. To that end, the control of on line partial deduction is conceptually divided into two levels [6, 16]: the first one, often referred to as the local control level, deals with constructing a finite, possibly incomplete SLD tree for a certain atom. Specialisation is obtained since unfolding is guided by the (partial) input provided in the root atom and the appropriate input part is propagated down ....
[Article contains additional citation context not shown here]
J. Gallagher. Specialisation of logic programs: A tutorial. In Proceedings PEPM'93, ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 88--98, Copenhagen, June 1993. ACM Press.
.... . On the other hand, research on partial deduction of logic programs meanwhile resulted in fully automatic and completely general specialisation techniques, not requiring any specific a priori knowledge about the kind of programs to be specialised, nor any help from the programmer (e.g. [10, 8, 18]) The key idea in automatic (on line) partial deduction consists of building a number of different SLD trees that together cover the complete computation of an atomic 1 goal G in a program P : To that extent, the control of on line partial deduction is conceptually divided into two levels [10, ....
.... 18] The key idea in automatic (on line) partial deduction consists of building a number of different SLD trees that together cover the complete computation of an atomic 1 goal G in a program P : To that extent, the control of on line partial deduction is conceptually divided into two levels [10, 26]: the first one, often referred to as the local control level, deals with constructing a finite, possibly incomplete SLD tree for a certain atom. Specialised clauses are produced from such a tree, one per branch, taking the root as head and the leaves as body. The global control level, on the ....
[Article contains additional citation context not shown here]
J. Gallagher. Specialisation of logic programs: A tutorial. In Proceedings PEPM'93, ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 88--98, Copenhagen, June 1993. ACM Press.
.... setting, most attention has been paid to on line specialisation: Without prior analysis, the program is run with the available input under the supervision of a control system that decides during specialisation what operations to evaluate or to residualise while guaranteeing termination [5]. In general, an on line system can achieve more thorough specialisation results due to the availability of concrete input to the control system [12, 13, 11] However, the o line approach o ers a lot of advantages: While the division in two phases makes the process conceptually cleaner, the ....
J. Gallagher. Specialisation of logic programs: A tutorial. In Proceedings PEPM'93, ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 88-98, Copenhagen, June 1993. ACM Press.
....Science, Katholieke Universiteit Leuven, Celestijnenlaan 200A, B 3001, Heverlee, Belgium. e mail: fwimvh,dannyd,berng cs.kuleuven.ac. be 1 Introduction and Motivation Partial deduction is an important transformation technique for logic programs, capable of removing inefficiencies from programs [4, 5]. As an on line specialisation technique, it is based on an evaluation mechanism for logic programs. The input to a typical partial deducer is a program and a partially instantiated query. The instantiated part represents the information with respect to which one would like to specialise; the ....
J. Gallagher. Specialisation of logic programs: A tutorial. In Proceedings PEPM'93, ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 88--98, Copenhagen, June 1993. ACM Press.
....enabling a better understanding of why several optimizations are (not) performed. In a logic programming setting, work on partial evaluation has mainly concentrated on on line specialisation (where the specialisation process is controlled by the concrete input rather than by a previous analysis [6, 11]) Consequently, little attention has been paid to o line specialisation and BTA [9, 12, 2] In previous work [16] we have de ned a completely automatic BTA for a subset of the logic programming language Mercury. The current work reformulates and extends our previous work extensively: in contrast ....
J. Gallagher. Specialisation of logic programs: A tutorial. In Proceedings PEPM'93, ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 88-98, Copenhagen, June 1993. ACM Press.
.... On the other hand, research on partial deduction of logic programs meanwhile resulted in fully automatic and completely general specialisation techniques, not requiring any specific a priori knowledge about the kind of programs to be specialised, nor any help from the programmer (e.g. [14, 11, 24]) Supported by a specialisation grant of the Flemish Institute for the Promotion of Scientific Technological Research in Industry (IWT) Belgium. y Postdoctoral Fellow of the K.U.Leuven Research Council, Belgium. 1 In this paper, we reconsider the problem of specialising the vanilla meta ....
....in [7] is addressed. We conclude with a discussion of our results and the ensuing plans for further research in Section 5. Throughout this paper, we only consider definite logic programs. 2 Automatic Partial Deduction We assume the reader is familiar with the basic correctness [27] and control [14, 11, 25] notions of automatic (on line) partial deduction (see also Appendix A) In this section, we briefly describe the essential ingredients of the partial deduction method we use in this paper. Experiments were conducted using the ecce automatic partial deduction system [26] 2.1 Local control As a ....
J. Gallagher. Specialisation of logic programs: A tutorial. In Proceedings PEPM'93, ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 88--98, Copenhagen, June 1993. ACM Press.
....P during top down unfolding offers many advantages for the quality of the specialised program, as well as for the efficiency of the specialiser. 1 Introduction and Motivation Program specialisation is an important transformation technique capable of removing certain inefficiencies from programs [3, 12, 2]. This is achieved by computing some parts of the program at specialisation time, and incorporating the results in a new, specialised program. Since this new program has less computations to perform, in general, it will be more efficient. In logic programs, data is represented by structures, which ....
....is then propagated upwards, back to the clause in which the call happened, thereby typically instantiating its head or other body atoms. 2. 2 Problems with Top Down Specialisation During top down specialisation, the two information flows are handled in the same fashion: For a number of atoms [12, 3, 2] or conjunctions of atoms [8, 5, 7] an SLDtree is built, using the definition of the original program P and an unfolding rule U . This presents some problems. 2.2.1 Unfolding Deeply Enough Often, structure is handled in several layers, through several predicates. If then there is some bottom up ....
[Article contains additional citation context not shown here]
J. Gallagher. Specialisation of logic programs: A tutorial. In Proceedings PEPM'93, ACM SIGPLAN Symposium on Partial Evaluation and SemanticsBased Program Manipulation, pages 88--98, Copenhagen, June 1993. ACM Press.
....However, as noted by Mildner, it appears to converge in all practical cases. A true widening for type graphs such as the one invented by Van Hentenryck et al. 8] could be used to guarantee termination in all cases. 3. THE BASIC PARTIAL EVALUATION ALGORITHM A basic partial evaluation algorithm [5] takes as input a program and a goal and computes a set of atoms. Each iteration of the main loop of the program applies unfolding (partial evaluation) to the atoms in the current set, yielding a set of resultants. The atoms in the resultants are generalised (to ensure termination) and any new ....
J. Gallagher. Specialisation of logic programs: A tutorial. In Proceedings PEPM'93, ACM SIGPLAN Symposium on Partial Evaluati on and Semantics-Based Program Manipulation, pages 88--98, Copenhagen, June 1993. ACM Press.
.... by Jones, Gomard, and Sestoft (1993) Partial evaluation was introduced into logic programming by Komorowski (1982) who called it partial deduction) and the basic principles and results were established by Lloyd and Shepherdson (1991) A recent survey of techniques and results can be found in (Gallagher 1993). Our main interest in specialization is when P , the program to be specialized, is a meta program. Suppose either P or the goal G with respect to which P is to be specialized contains the representation of an object program. In this case the aim of the specialization of P with respect to G is to ....
Gallagher, J. (1993), Specialisation of logic programs: A tutorial, in `ACMSIGPLAN Symposium on Partial Evaluation and Semantics Based Program Manipulation, Copenhagen', pp. 88--98.
.... 1 Introduction As a major approach to program transformation and specialisation, partial evaluation has perhaps most intensively been studied in a functional programming context ( 5] 15] It was introduced to logic programming by [16] and has since then flourished also there (see e.g. 17] [11], 28] Lately, it has become customary to speak about partial deduction rather than evaluation in a context of pure logic programs, and we will comply with that development in this paper, too. A clear theoretical foundation for partial deduction was established in [23] While clarifying a ....
....overall application is maximised. Several interesting heuristics and or overall strategies, both for guiding unfolding and for steering polyvariance, have been proposed, often producing fine results on a range of examples, but no universally adequate methods have as yet emerged. See e.g. 17] and [11] for two fairly recent accounts of these and related issues. At both levels also, it is crucial for a fully automatic method to proceed such that termination is guaranteed on all programs and queries without any user intervention. As far as tree construction is concerned, imposing a depth bound ....
[Article contains additional citation context not shown here]
J. Gallagher. Specialisation of logic programs: A tutorial. In Proceedings PEPM'93, ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 88--98, Copenhagen, June 1993. ACM Press.
No context found.
Gallagher, J.: 1993, `Specialisation of Logic Programs: A Tutorial'. In: Proceedings PEPM'93, ACM SIGPLAN Symposium on Partial Evaluation and SemanticsBasedProgram Manipulation. Copenhagen, pp. 88#98.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC