Results 1 
6 of
6
Fast Offline Partial Evaluation of Large Logic Programs
 In Logicbased Program Synthesis and Transformation (revised and selected papers from LOPSTR’08
, 2009
"... There are two main approaches to partial evaluation [6], a wellknown technique for program specialisation. Online partial evaluators basically include an augmented interpreter that tries to evaluate the program constructs as much as possible—using the partially known input data—while still ensuring ..."
Abstract

Cited by 8 (6 self)
 Add to MetaCart
There are two main approaches to partial evaluation [6], a wellknown technique for program specialisation. Online partial evaluators basically include an augmented interpreter that tries to evaluate the program constructs as much as possible—using the partially known input data—while still ensuring the termination
TypeBased Homeomorphic Embedding and Its Applications to Online Partial Evaluation
"... Abstract. Homeomorphic Embedding (HEm) hasproventobevery powerful for supervising termination of computations, provided that such computations are performed over a finite signature, i.e., the number of constants and function symbols involved is finite. However, there are situations, for example nume ..."
Abstract

Cited by 4 (4 self)
 Add to MetaCart
Abstract. Homeomorphic Embedding (HEm) hasproventobevery powerful for supervising termination of computations, provided that such computations are performed over a finite signature, i.e., the number of constants and function symbols involved is finite. However, there are situations, for example numeric computations, which involve an infinite (or too large) signature, in which HEm does not guarantee termination. Some extensions to HEm for the case of infinite signatures have been proposed which guarantee termination, but they either do not provide systematic means for generating such extensions or the extensions are too simplistic and do not produce the expected results in practice. We introduce Typebased Homeomorphic Embedding (TbHEm) asanextension of the standard, untyped HEm to deal with infinite signatures. In the paper, we show how TbHEm can be used to improve the accuracy of online partial evaluation. For this purpose, we propose an approach to constructing suitable types for partial evaluation automatically based on existing analysis tools for constraint logic programs. We also present useful properties of types which allow us to take full advantage of TbHEm in practice. Experimental results are reported which show that our work improves the state of the practice of online partial evaluation. 1
Improving sizechange analysis in offline partial evaluation
, 2008
"... Abstract. Some recent approaches for scalable offline partial evaluation of logic programs include a sizechange analysis for ensuring both so called local and global termination. In this work—inspired by experimental evaluation—we introduce several improvements that may increase the accuracy of the ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract. Some recent approaches for scalable offline partial evaluation of logic programs include a sizechange analysis for ensuring both so called local and global termination. In this work—inspired by experimental evaluation—we introduce several improvements that may increase the accuracy of the analysis and, thus, the quality of the associated specialized programs. We aim to achieve this while maintaining the same complexity and scalability of the recent works. 1
Towards Scalable Partial Evaluation of Declarative Programs ⋆
"... Partial evaluation is a wellknown technique for program specialization [4]. Essentially, given a program and part of its input data—the socalled static data—a partial evaluator returns a new, residual program which is specialized for the given data. The residual program is then used for performing ..."
Abstract
 Add to MetaCart
Partial evaluation is a wellknown technique for program specialization [4]. Essentially, given a program and part of its input data—the socalled static data—a partial evaluator returns a new, residual program which is specialized for the given data. The residual program is then used for performing the remaining
Predicting the Effectiveness of Partial Evaluation
"... Abstract. Partial evaluation aims at improving programs by specializing them w.r.t. part of their input data. In general, however, the effectiveness of the partial evaluation process is hard to measure, even a posteriori. Recent approaches have introduced experimental (often computationally expensiv ..."
Abstract
 Add to MetaCart
Abstract. Partial evaluation aims at improving programs by specializing them w.r.t. part of their input data. In general, however, the effectiveness of the partial evaluation process is hard to measure, even a posteriori. Recent approaches have introduced experimental (often computationally expensive) frameworks for this purpose. In this paper, we present an alternative, symbolic approach for predicting the effectiveness of partial evaluation by combining a trace analysis with a termination analysis. The termination analysis—namely, a sizechange analysis—is used to determine which procedures are potentially removable by partial evaluation (i.e., can be fully unfolded at specialization time). Then, the trace analysis helps us to put this information into context by producing a compact representation of the call sequences of the program. By inspecting the output of the combined analysis, the user may determine the impact of a partial evaluation before it is performed. 1
Fast and Accurate Strong Termination Analysis with an Application to Partial Evaluation ⋆
"... Abstract. A logic program strongly terminates if it terminates for any selection rule. Clearly, considering a particular selection rule—like Prolog’s leftmost selection rule—allows one to prove more goals terminating. In contrast, a strong termination analysis gives valuable information for those ap ..."
Abstract
 Add to MetaCart
Abstract. A logic program strongly terminates if it terminates for any selection rule. Clearly, considering a particular selection rule—like Prolog’s leftmost selection rule—allows one to prove more goals terminating. In contrast, a strong termination analysis gives valuable information for those applications in which the selection rule cannot be fixed in advance (e.g., partial evaluation, dynamic selection rules, parallel execution). In this paper, we introduce a fast and accurate sizechange analysis that can be used to infer conditions for both strong termination and strong quasitermination of logic programs. We also provide several ways to increase the accuracy of the analysis without sacrificing scalability. In the experimental evaluation, we show that the new algorithm is up to three orders of magnitude faster than the previous implementation, meaning that we can efficiently deal with programs exceeding 25,000 lines of Prolog. 1