Results 1 
9 of
9
Opportunities for Online Partial Evaluation
, 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 91 (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.
Partial evaluation and residual theorems in computer algebra
 in: Ranise and Bigatti [28
"... We have implemented a partial evaluator for Maple. One of the applications of this partial evaluator is to find, in Maple, what is the difference between generic or symbolic evaluation, and complete evaluation. More precisely, when asked degree(a*xˆ2+3,x), Maple replies 2, which is generically true. ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
We have implemented a partial evaluator for Maple. One of the applications of this partial evaluator is to find, in Maple, what is the difference between generic or symbolic evaluation, and complete evaluation. More precisely, when asked degree(a*xˆ2+3,x), Maple replies 2, which is generically true. However, we are interested in the residual formula ¬(a = 0) which, as a guard, makes the answer 2 correct. While special algorithms have been derived in the past for this particular situation, we show how we can derive many of these algorithms as special cases of partially evaluating Maple code. Key words: Maple, symbolic computation, partial evaluation, specialization problem 1
Partial Evaluation of Maple Programs
, 2006
"... Partial Evaluation (PE) is a program transformation technique that generates a specialized version of a program with respect to a subset of its inputs. PE is an automatic approach to program generation and metaprogramming. This thesis presents a method of partially evaluating Maple programs using ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
Partial Evaluation (PE) is a program transformation technique that generates a specialized version of a program with respect to a subset of its inputs. PE is an automatic approach to program generation and metaprogramming. This thesis presents a method of partially evaluating Maple programs using a fully online methodology. We present an implementation called MapleMIX, and use it towards two goals. Firstly we show how MapleMIX can be used to generate optimized versions of generic programs written in Maple. Secondly we use MapleMIX to mine symbolic computation code for residual theorems, which we present as precise solutions to parametric problems encountered in Computer Algebra Systems. The implementation of MapleMIX has been modularized using a highlevel intermediate language called Mform. Several syntax transformations from Maple to Mform make it an ideal representation for performing program specialization. Many specialization techniques have been explored including a novel online approach to handle
Abstract Partial Evaluation of Maple
"... Having been convinced of the potential benefits of partial evaluation, we wanted to apply these techniques to code written in Maple, our Computer Algebra System of choice. Maple is a very large language, with a number of nonstandard features. When we tried to implement a partial evaluator for it, w ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Having been convinced of the potential benefits of partial evaluation, we wanted to apply these techniques to code written in Maple, our Computer Algebra System of choice. Maple is a very large language, with a number of nonstandard features. When we tried to implement a partial evaluator for it, we ran into a number of difficulties for which we could find no solution in the literature. Undaunted, we persevered and ultimately implemented a working partial evaluator with which we were able to very successfully conduct our experiments, first on small codes, and now on actual routines taken from Maple’s own library. Here, we document the techniques we had to invent or adapt to achieve these results. Key words: Maple, symbolic computation, partial evaluation, residual theorems 1
General Terms
"... Having been convinced of the potential benefits of partial evaluation, we wanted to conduct some experiments in our favourite Computer Algebra System, Maple. Maple is a large language, with a few nonstandard features. When we tried to implement a partial evaluator for it, we ran into a number of di ..."
Abstract
 Add to MetaCart
Having been convinced of the potential benefits of partial evaluation, we wanted to conduct some experiments in our favourite Computer Algebra System, Maple. Maple is a large language, with a few nonstandard features. When we tried to implement a partial evaluator for it, we ran into a number of difficulties for which we could find no solution in the literature. Undaunted, we persevered and ultimately implemented a working partial evaluator with which we were able to very successfully [10] conduct our experiments. In this paper, we document the techniques we had to either invent or adapt to achieve these results.
Improving the Accuracy of HigherOrder Specialization using Control Flow Analysis
"... We have developed a new technique for computing the argument vectors used to build specializations of firstclass functions. Instead of building these specializations on completely dynamic actual parameters, our technique performs a control flow analysis of the residual program as it is constructed ..."
Abstract
 Add to MetaCart
We have developed a new technique for computing the argument vectors used to build specializations of firstclass functions. Instead of building these specializations on completely dynamic actual parameters, our technique performs a control flow analysis of the residual program as it is constructed during specialization, and uses the results of this analysis to compute more accurate actual parameter values. As implemented in the program specializer FUSE, our technique has proven useful in improving the specialization of several realistic programs taken from the domains of interpreters and scientific computation. Also, it extends the utility of the continuationpassingstyle (CPS) transformation for binding time improvement to programs with non tailrecursive residual loops. Introduction The treatment of function calls in program point specializers for firstorder functional languages is fairly straightforward: since the head of the call always evaluates to a known procedure at specia...