Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Fast offline partial evaluation of logic programs
Leuschel M., Vidal G. Information and Computation235 70-97,2014.Type:Article
Date Reviewed: Sep 3 2014

Suppose we execute a program with only some of the data it needs. If we reach a choice point requiring data we do not have, we could return a program consisting of the choice test and the code used in its branches. We could go further and return a program where the code for each of the branches comes from similar execution. This is partial evaluation. The result is a program that would be more efficient than the original when we know the data has the aspects fed into the partial evaluation.

If we encounter a recursive call with arguments different from those of the original call we are partially evaluating, we have a problem. Continuing with the partial evaluation of this call could give another recursive call and so on infinitely, but if we leave it unevaluated we may miss opportunities for further efficiency improvements.

Determining when to terminate in these circumstances is a big issue. This paper undertakes a formal analysis, the underlying principle being that we can continue with the partial evaluation if the data in the recursive call is in some provable sense smaller than the data in the original call.

As in much work in partial evaluation, the language used is Prolog, which is particularly amenable to the technique. It would have been useful if the authors had provided more discussion on the extent to which their analysis techniques are purely oriented toward Prolog or could be applied to other programming languages.

Reviewer:  M. Huntbach Review #: CR142685 (1412-1063)
Bookmark and Share
 
Partial Evaluation (F.3.2 ... )
 
 
Evaluation Strategies (I.1.3 ... )
 
 
Language Constructs and Features (D.3.3 )
 
 
Logic Programming (D.1.6 )
 
Would you recommend this review?
yes
no
Other reviews under "Partial Evaluation": Date
The abstraction and instantiation of string-matching programs
Amtoft T., Consel C., Danvy O., Malmkjær K. In The essence of computation. New York, NY: Springer-Verlag New York, Inc., 2002. Type: Book Chapter
Sep 22 2003
Constraint-based partial evaluation for imperative languages
Ying J., Chengzhi J. Journal of Computer Science and Technology 17(1): 64-72, 2002. Type: Article
Apr 25 2003
Toward a complete transformational toolkit for compilers
Bergstra J., Dinesh T., Field J., Heering J. ACM Transactions on Programming Languages and Systems 19(5): 639-684, 1997. Type: Article
May 1 1998
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy