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
    0 references
    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

    Identifiers