The methods of tabulating results of recursive calls to avoid their recomputations are surveyed in [1]. The reviewed paper considers a rather special, theoretically simple, yet practically significant (as demonstrated by numerous examples) class of programs represented by the schema: f(x) :9I= if p(x) then a(a) else b (x),f)(c(x)).f(d(x))).
Under some constraints (like commutativity of c and d), small tables, which save exactly the results to be used later, can be designed systematically with no heuristic involved. The method thus permits the user to automatically transform considered programs to their (partially equivalent) nonredundant counterparts. The interested reader may find it useful to also consult [2], which is not referred to in this paper.