Tupling calculation eliminates multiple data traversals

  • Authors:
  • Zhenjiang Hu;Hideya Iwasaki;Masato Takeichi;Akihiko Takano

  • Affiliations:
  • Department of Information Engineering, University of Tokyo;Department of Computer Science, Tokyo University of Agriculture and Technology;Department of Information Engineering, University of Tokyo;Advanced Research Laboratory, Hitachi, Ltd

  • Venue:
  • ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

Tupling is a well-known transformation tactic to obtain new efficient recursive functions by grouping some recursive functions into a tuple. It may be applied to eliminate multiple traversals over the common data structure. The major difficulty in tupling transformation is to find what functions are to be tupled and how to transform the tupled function into an efficient one. Previous approaches to tupling transformation are essentially based on fold/unfold transformation. Though general, they suffer from the high cost of keeping track of function calls to avoid infinite unfolding, which prevents them from being used in a compiler.To remedy this situation, we propose a new method to expose recursive structures in recursive definitions and show how this structural information can be explored for calculating out efficient programs by means of tupling. Our new tupling calculation algorithm can eliminate most of multiple data traversals and is easy to be implemented.