Results 11  20
of
27
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 14 (5 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.
ResourceBounded Partial Evaluation
 In Proceedings of PEPM’97, the ACM SIGPLAN Symposium on Partial Evaluation and SemanticsBased Program Manipulation
"... Most partial evaluators do not take the availability of machinelevel resources, such as registers or cache, into consideration when making their specialization decisions. The resulting resource contention can lead to severe performance degradationcausing, in extreme cases, the specialized code ..."
Abstract

Cited by 14 (0 self)
 Add to MetaCart
Most partial evaluators do not take the availability of machinelevel resources, such as registers or cache, into consideration when making their specialization decisions. The resulting resource contention can lead to severe performance degradationcausing, in extreme cases, the specialized code to run slower than the unspecialized code. In this paper we consider how resource considerations can be incorporated within a partial evaluator. We develop an abstract formulation of the problem, show that optimal resourcebounded partial evaluation is NPcomplete, and discuss simple heuristics that can be used to address the problem in practice. 1 Introduction The field of partial evaluation has matured greatly in recent years, and partial evaluators have been implemented for a wide variety of programming languages [1, 4, 5, 6, 20, 29]. A central concern guiding these implementations has been to ensure that input programs should be specialized as far as possible without compromising ...
Typed Norms for Typed Logic Programs
 In Logic Program Synthesis and Transformation
, 1996
"... this paper we show how norms can be generated from the prescribed types of a program written in a language which supports parametric polymorphism, e.g. Godel [11]. Interestingly, the types highlight restrictions of earlier norms and suggest how these norms can be extended to obtain some very general ..."
Abstract

Cited by 13 (2 self)
 Add to MetaCart
this paper we show how norms can be generated from the prescribed types of a program written in a language which supports parametric polymorphism, e.g. Godel [11]. Interestingly, the types highlight restrictions of earlier norms and suggest how these norms can be extended to obtain some very general and powerful notions of norm which can be used to measure any term in an almost arbitrary way. We see our work on norm derivation as a contribution to the termination analysis of typed logic programs which, in particular, forms an essential part of partial deduction systems such as SAGE.
A Constraintbased Partial Evaluator for Functional Logic Programs and its Application
, 1998
"... The aim of this work is the development and application of a partial evaluation procedure for rewritingbased functional logic programs. Functional logic programming languages unite the two main declarative programming paradigms. The rewritingbased computational model extends traditional functional ..."
Abstract

Cited by 12 (0 self)
 Add to MetaCart
The aim of this work is the development and application of a partial evaluation procedure for rewritingbased functional logic programs. Functional logic programming languages unite the two main declarative programming paradigms. The rewritingbased computational model extends traditional functional programming languages by incorporating logical features, including logical variables and builtin search, into its framework. This work is the first to address the automatic specialisation of these functional logic programs. In particular, a theoretical framework for the partial evaluation of rewritingbased functional logic programs is defined and its correctness is established. Then, an algorithm is formalised which incorporates the theoretical framework for the procedure in a fully automatic technique. Constraint solving is used to represent additional information about the terms encountered during the transformation in order to improve the efficiency and size of the residual programs. ...
Analysis and Transformation of Proof Procedures
, 1994
"... Automated theorem proving has made great progress during the last few decades. Proofs of more and more difficult theorems are being found faster and faster. However, the exponential increase in the size of the search space remains for many theorem proving problems. Logic program analysis and transfo ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
Automated theorem proving has made great progress during the last few decades. Proofs of more and more difficult theorems are being found faster and faster. However, the exponential increase in the size of the search space remains for many theorem proving problems. Logic program analysis and transformation techniques have also made progress during the last few years and automated theorem proving can benefit from these techniques if they can be made applicable to general theorem proving problems. In this thesis we investigate the applicability of logic program analysis and transformation techniques to automated theorem proving. Our aim is to speed up theorem provers by avoiding useless search. This is done by detecting and deleting parts of the theorem prover and theory under consideration that are not needed for proving a given formula. The analysis and transformation techniques developed for logic programs can be applied in automated theorem proving via a programming technique called ...
Specialising interpreters using offline partial deduction
 In Program Development in Computational Logic
, 2004
"... Abstract. We present the latest version of the logen partial evaluation system for logic programs. In particular we present new bindingtypes, and show how they can be used to effectively specialise a wide variety of interpreters. We show how to achieve Jonesoptimality in a systematic way for sever ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
Abstract. We present the latest version of the logen partial evaluation system for logic programs. In particular we present new bindingtypes, and show how they can be used to effectively specialise a wide variety of interpreters. We show how to achieve Jonesoptimality in a systematic way for several interpreters. Finally, we present and specialise a nontrivial interpreter for a small functional programming language. Experimental results are also presented, highlighting that the logen system can be a good basis for generating compilers for highlevel languages. 1
Sonic partial deduction
 In Proceedings of the Third International Ershov Conference on Perspectives of System Informatics, LNCS
, 1998
"... The current state of the art for ensuring finite unfolding of logic programs consists of a number of online techniques where unfolding decisions are made at specialisation time. Introduction of a static termination analysis phase into a partial deduction algorithm permits unfolding decisions to be ..."
Abstract

Cited by 6 (4 self)
 Add to MetaCart
The current state of the art for ensuring finite unfolding of logic programs consists of a number of online techniques where unfolding decisions are made at specialisation time. Introduction of a static termination analysis phase into a partial deduction algorithm permits unfolding decisions to be made offline, before the actual specialisation phase itself. This separation improves specialisation time and facilitates the automatic construction of compilers and compiler generators. The main contribution of this paper is
Partial Deduction System
 In Proc. of the ILPS'97 Workshop on Tools and Environments for (Constraint) Logic Programming, U.P
, 1997
"... We present the fully automatic partial deduction system ecce, which can be used to specialise and optimise logic programs. We describe the underlying principles of ecce and illustrate some of the potential application areas. Interesting possibilites of crossfertilisation with other fields such as r ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
We present the fully automatic partial deduction system ecce, which can be used to specialise and optimise logic programs. We describe the underlying principles of ecce and illustrate some of the potential application areas. Interesting possibilites of crossfertilisation with other fields such as reachability analysis of concurrent systems and inductive theorem proving are highlighted and substantiated. 1 Introduction Program specialisation, also called partial evaluation or partial deduction, is an automatic technique for program optimisation. The central idea is to specialise a given source program for a particular application domain. Program specialisation encompasses traditional compiler optimisation techniques, such as constant folding and inlining, but uses more aggressive transformations, yielding both the possibility of obtaining (much) greater speedups and more difficulty in controlling the transformation process. In addition to achieving important speedups, program special...
Lix: An effective selfapplicable partial evaluator for Prolog
 In Proceedings of FLOPS’04
, 2004
"... Abstract. This paper presents a selfapplicable partial evaluator for a considerable subset of full Prolog. The partial evaluator is shown to achieve nontrivial specialisation and be effectively selfapplied. The attempts to selfapply partial evaluators for logic programs have, of yet, not been al ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Abstract. This paper presents a selfapplicable partial evaluator for a considerable subset of full Prolog. The partial evaluator is shown to achieve nontrivial specialisation and be effectively selfapplied. The attempts to selfapply partial evaluators for logic programs have, of yet, not been all that successful. Compared to earlier attempts, our lix system is practically usable in terms of efficiency and can handle natural logic programming examples with partially static data structures, builtins, sideeffects, and some higherorder and metalevel features such as call and findall. The lix system is derived from the development of the logen compiler generator system. It achieves a similar kind of efficiency and specialisation, but can be used for other applications. Notably, we show first attempts at using the system for deforestation and tupling in an offline fashion. We will demonstrate that, contrary to earlier beliefs, declarativeness and the use of the ground representation is not the best way to achieve selfapplicable partial evaluators. Keywords: Partial
Effective Metaprogramming in Declarative Languages
, 1998
"... Declarative metaprogramming is vital, since it is the most promising means by which programs can be made to reason about other programs. A metaprogram is a program that takes another program, called the object program, as data. A declarative programming language is a programming language based on a ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Declarative metaprogramming is vital, since it is the most promising means by which programs can be made to reason about other programs. A metaprogram is a program that takes another program, called the object program, as data. A declarative programming language is a programming language based on a logic that has a model theory. A metaprogram operates on a representation of an object...