A transformational approach which combines size inference and program optimization

  • Authors:
  • Christoph A. Herrmann;Christian Lengauer

  • Affiliations:
  • Fakultät für Mathematik und Informatik, Universität Passau, Germany;Fakultät für Mathematik und Informatik, Universität Passau, Germany

  • Venue:
  • SAIG'01 Proceedings of the 2nd international conference on Semantics, applications, and implementation of program generation
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

We propose a calculus for the analysis of list lengths in functional programs. In contrast to common type-based approaches, it is based on the syntactical structure of the program. To our knowledge, no other approach provides such a detailed analysis of nested lists. The analysis of lists is preceded by a program transformation which makes sizes explicit as program values and eliminates the chain of cons operations. This permits alternative implementations of lists, e.g., by functions or arrays. The technique is being implemented in an experimental parallelizing compiler for the functional language HDC. We believe that analysis and parallelization work best if higher-order functions are used to compose the program from functional building blocks, so-called skeletons, instead of using unrestrained recursion. Skeletons, e.g., data-parallel combinators come with a theory of sizes and parallelization.