Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
A transformation method for dynamic-sized tabulation
Chin W., Hagiya M. (ed) Acta Informatica32 (2):93-115,1995.Type:Article
Date Reviewed: Jul 1 1996

Direct computation of recursive functions often leads to a repeated evaluation of the same recursive calls. Various techniques to overcome this drawback exist. The authors develop their methods on the basis of tupling and memoization, and on the assumption that the programming language (Haskel or one of its relatives) allows for the use of functions of higher order. They start with lambda-abstraction, which makes the recursive scheme simpler by paying the price of introducing higher-order functions, which can work with lambda expressions. The algorithm at this stage is more amenable to further transformation, but no more efficient than the original algorithm, because it still may evaluate the same call many times. The decisive step (called vector conversion) is to convert lambda abstractions into vectors, keeping the values of function calls as components of these vectors and using them more than once without recomputation (tabulation). Thus it all comes down to a form of memoization. Additional transformation may sometimes be done, such as conversion of the algorithm into an iterative form by tail recursion.

Vector conversion should, clearly, lessen the overhead of tabulation. The question is, how much, when compared with traditional methods of memoization? The authors present a table of time and space resources spent in computation of binomial coefficients C kn using their method and by “fully memoized” computation. Unfortunately, the choice of what they call the “fully memoized” form of memoization is not very informative. The presented data make one believe that this form is simply keeping a list of pairs’ argument-values and traversing it, which makes access time quadratic in n. It is not surprising, then, that the authors’ program works more than 100 times faster in some cases. Comparison of vector conversion with memoization through a two-dimensional table is discussed in the paper, but no figures are given. The paper is well written and can be recommended to those who are interested in non-automatic function transformation.

Reviewer:  V. Turchin Review #: CR119327 (9607-0510)
Bookmark and Share
 
Program And Recursion Schemes (F.3.3 ... )
 
 
Preprocessors (D.3.4 ... )
 
 
Program Transformation (I.2.2 ... )
 
 
Recursion (D.3.3 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Program And Recursion Schemes": Date
The design of divide and conquer algorithms
Smith D. Science of Computer Programming 5(1): 37-58, 1985. Type: Article
Dec 1 1985
Decidable properties of monadic recursive schemas with a depth parameter
Gonczarowski J. Acta Informatica 22(3): 277-310, 1985. Type: Article
Oct 1 1987
Necessary and sufficient conditions for the universality of programming formalisms
Kfoury A., Urzyczyn P. Acta Informatica 22(4): 347-377, 1985. Type: Article
Mar 1 1987
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