A transformation method for dynamic-sized tabulation (Q1892705)
From MaRDI portal
scientific article
Language | Label | Description | Also known as |
---|---|---|---|
English | A transformation method for dynamic-sized tabulation |
scientific article |
Statements
A transformation method for dynamic-sized tabulation (English)
0 references
21 June 1995
0 references
Tupling is a transformation tactic to obtain new functions, without redundant calls and/or multiple traversals of common inputs. It achieves this feat by allowing each set (tuple) of functions calls to be computed recursively from its previous set. In previous works by Chin and Khoo a safe (terminating) fold/unfold transformation algorithm was developed for some classes of functions which are guaranteed to be successfully tupled. However, these classes of functions currently use static-sized tables for eliminating the redundant calls. As shown by Richard Bird in [3], there are also other classes of programs whose redundant calls could only be eliminated by using dynamic-sized tabulation. This paper proposes a new solution to dynamic-sized tabulation by an extension to the tupling tactic. Our extension uses lambda abstractions which can be viewed as either dynamic-sized tables or applications of the higher-order generalization technique to facilitate tupling. Significant speedups could be obtained after the transformed programs were vectorised, as confirmed by experiment.
0 references
tupling
0 references
dynamic-sized tabulation
0 references
lambda abstractions
0 references