• Documents
  • Authors
  • Tables
  • Log in
  • Sign up
  • MetaCart
  • DMCA
  • Donate

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations

An Automatic Partial Evaluator for Full Prolog (1991)

by D Sahlin
Add To MetaCart

Tools

Sorted by:
Results 1 - 10 of 111
Next 10 →

A System For Specialising Logic Programs

by J. P. Gallagher , 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 Specialis ..."
Abstract - Cited by 153 (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 Built-ins 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 ...

TRANSFORMATION OF LOGIC PROGRAMS: FOUNDATIONS AND TECHNIQUES

by A. Pettorossi, M. Proietti , 1993
"... ..."
Abstract - Cited by 152 (25 self) - Add to MetaCart
Abstract not found

Opportunities for Online Partial Evaluation

by Erik Ruf, Daniel Weise , 1992
"... Partial evaluators can be separated into two classes: offline specializers, which make all of their reduce/residualize decisions before specialization, and online specializers, which make such decisions during specialization. The choice of which method to use is driven by a tradeoff between the effi ..."
Abstract - Cited by 96 (5 self) - Add to MetaCart
Partial evaluators can be separated into two classes: offline specializers, which make all of their reduce/residualize decisions before specialization, and online specializers, which make such decisions during specialization. The choice of which method to use is driven by a tradeoff between the efficiency of the specializer and the quality of the residual programs that it produces. Existing research describes some of the inefficiencies of online specializers, and how these are avoided using offline methods, but fails to address the price paid in specialization quality. This paper motivates research in online specialization by describing two fundamental limitations of the offline approach, and explains why the online approach does not encounter the same difficulties.

Homeomorphic Embedding for Online Termination

by Michael Leuschel - STATIC ANALYSIS. PROCEEDINGS OF SAS’98, LNCS 1503 , 1998
"... Recently well-quasi orders in general, and homeomorphic embedding in particular, have gained popularity to ensure the termination of program analysis, specialisation and transformation techniques. In this paper, ..."
Abstract - Cited by 65 (9 self) - Add to MetaCart
Recently well-quasi orders in general, and homeomorphic embedding in particular, have gained popularity to ensure the termination of program analysis, specialisation and transformation techniques. In this paper,

Ensuring Global Termination of Partial Deduction while Allowing Flexible Polyvariance

by Bern Martens, John Gallagher , 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, well-founded orderings serve as a star ..."
Abstract - Cited by 64 (16 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, well-founded orderings serve as a starting point for tackling this so-called "global termination" problem. Polyvariance is determined by the set of distinct "partially deduced" atoms generated during partial deduction. Avoiding ad-hoc techniques, we formulate a quite general framework where this set is represented as a tree structure. Associating weights with nodes, we define a well-founded 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...

Logic program specialisation through partial deduction: Control issues

by Michael Leuschel, Maurice Bruynooghe - UNDER CONSIDERATION FOR PUBLICATION IN THEORY AND PRACTICE OF LOGIC PROGRAMMING
"... Program specialisation aims at improving the overall performance of programs by performing source to source transformations. A common approach within functional and logic programming, known respectively as partial evaluation and partial deduction, is to exploit partial knowledge about the input. It ..."
Abstract - Cited by 63 (12 self) - Add to MetaCart
Program specialisation aims at improving the overall performance of programs by performing source to source transformations. A common approach within functional and logic programming, known respectively as partial evaluation and partial deduction, is to exploit partial knowledge about the input. It is achieved through a well-automated application of parts of the Burstall-Darlington unfold/fold transformation framework. The main challenge in developing systems is to design automatic control that ensures correctness, efficiency, and termination. This survey and tutorial presents the main developments in controlling partial deduction over the past 10 years and analyses their respective merits and shortcomings. It ends with an assessment of current achievements and sketches some remaining research challenges.

Controlling Generalisation and Polyvariance in Partial Deduction of Normal Logic Programs

by Michael Leuschel, Bern Martens, Danny De Schreye - ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS , 1997
"... In this paper, we further elaborate global control for partial deduction: For which atoms, among possibly infinitely many, should partial deductions be produced, meanwhile guaranteeing correctness as well as termination, and providing ample opportunities for finegrained polyvariance? Our soluti ..."
Abstract - Cited by 55 (37 self) - Add to MetaCart
In this paper, we further elaborate global control for partial deduction: For which atoms, among possibly infinitely many, should partial deductions be produced, meanwhile guaranteeing correctness as well as termination, and providing ample opportunities for finegrained polyvariance? Our solution is based on two ingredients. First, we use the wellknown concept of a characteristic tree to guide abstraction (or generalisation) and polyvariance, and aim for producing one specialised procedure per characteristic tree generated. Previous work along this line failed to provide abstraction correctly dealing with characteristic trees. We show how this can be rectified in an elegant way. Secondly, we structure combinations of atoms and associated characteristic trees in global trees registering "causal" relationships among such pairs. This will allow us to spot looming non-termination and consequently perform proper generalisation in order to avert the danger, without having to i...
(Show Context)

Citation Context

...o remedy this, the constants and functors are partitioned into the static ones, occurring in the original program and the partial deduction query, and the dynamic ones. (This approach is also used in =-=[63, 64]-=-.) The set of dynamic constants and functors is possibly innite, and we will therefore treat it like the innite set of variables in Denition 4.15 by adding the following rule to the ecce system: 42...

Global control for partial deduction through characteristic atoms and global trees

by Michael Leuschel, Bern Martens , 1995
"... Abstract. Recently, considerable advances have been made in the (online) control of logic program specialisation. A clear conceptual distinction has been established between local and global control and on both levels concrete strategies as well as general frameworks have been proposed. For global c ..."
Abstract - Cited by 50 (23 self) - Add to MetaCart
Abstract. Recently, considerable advances have been made in the (online) control of logic program specialisation. A clear conceptual distinction has been established between local and global control and on both levels concrete strategies as well as general frameworks have been proposed. For global control in particular, recent work has developed concrete techniques based on the preservation of characteristic trees (limited, however, by a given, arbitrary depth bound) to obtain a very precise control of polyvariance. On the other hand, the concept of an m-tree has been introduced as a refined way to trace “relationships ” of partially deduced atoms, thus serving as the basis for a general framework within which global termination of partial deduction can be ensured in a non ad hoc way. Blending both, formerly separate, contributions, in this paper, we present an elegant and sophisticated technique to globally control partial deduction of normal logic programs. Leaving unspecified the specific local control one may wish to plug in, we develop a concrete global control strategy combining the use of characteristic atoms and trees with global (m-)trees. We thus obtain partial deduction that always terminates in an elegant, non ad hoc way, while providing excellent specialisation as well as fine-grained (but reasonable) polyvariance. We conjecture that a similar approach may contribute to improve upon current (on-line) control strategies for functional program transformation methods such as (positive) supercompilation. 1
(Show Context)

Citation Context

...Postdoctoral Fellow of the K.U.Leuven Research Council.programs ([4, 13]) has mainly stressed the former, while supercompilation of functional ([31, 32, 30]) and partial deduction of logic programs (=-=[10, 29, 2, 3, 23, 26, 17]-=-) have concentrated on on-line control. (Some exceptions are [33, 27, 16, 14].) It is within this on-line control tradition that the present work provides a novel and important contribution. In partia...

Offline specialisation in Prolog using a hand-written compiler generator

by Michael Leuschel, Jesper Jørgensen , 2004
"... The so called “cogen approach” to program specialisation, writing a compiler generator instead of a specialiser, has been used with considerable success in partial evaluation of both functional and imperative languages. This paper demonstrates that this approach is also applicable to partial eva ..."
Abstract - Cited by 45 (23 self) - Add to MetaCart
The so called “cogen approach” to program specialisation, writing a compiler generator instead of a specialiser, has been used with considerable success in partial evaluation of both functional and imperative languages. This paper demonstrates that this approach is also applicable to partial evaluation of logic programming languages, also called partial deduction. Self-application has not been as much in focus in logic programming as for functional and imperative languages, and the attempts to self-apply partial deduction systems have, of yet, not been altogether that successful. So, especially for partial deduction, the cogen approach should prove to have a considerable importance when it comes to practical applications. This paper first develops a generic offline partial deduction technique for pure logic programs, notably supporting partially instantiated datastructures via binding types. From this a very efficient cogen is derived, which generates very efficient generating extensions (executing up to several orders of magnitude faster than current online systems) which in turn perform very good and non-trivial specialisation, even rivalling existing online systems. All this is supported by extensive benchmarks. Finally, it is shown how the cogen can be extended to directly support a large part of Prolog’s declarative and non-declarative features and how semi-online specialisation can be efficiently integrated.
(Show Context)

Citation Context

...ecialiser the more complex the specialisation process becomes, because the specialiser then has to handle these features as well. This is why so far no partial evaluator for full Prolog (like mixtus (=-=Sahlin 1993-=-), or paddy (Prestwich 1992)) is effectively self-applicable. On the other hand a partial deducer which specialises only purely declarative logic programs (like sage (Gurr 1994) or the system in (Bond...

Conjunctive Partial Deduction: Foundations, Control, Algorithms, and Experiments

by Danny De Schreye, Robert Glück, Jesper Jørgensen, Michael Leuschel, Bern Martens, Morten Heine Sørensen - J. LOGIC PROGRAMMING , 1999
"... ..."
Abstract - Cited by 42 (17 self) - Add to MetaCart
Abstract not found
Powered by: Apache Solr
  • About CiteSeerX
  • Submit and Index Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2019 The Pennsylvania State University