Partial evaluation applied to numerical computation

  • Authors:
  • Andrew Berlin

  • Affiliations:
  • Artificial Intelligence Laboratory and Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology

  • Venue:
  • LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
  • Year:
  • 1990

Quantified Score

Hi-index 0.00

Visualization

Abstract

There have been many demonstrations that the expressive power of Lisp can greatly simplify the process of writing numerical programs, but at the cost of reduced performance.[10][16] I show that by coupling Lisp's abstract, expressive style of programming with a compiler that uses partial evaluation, data abstractions can be eliminated at compile time, producing extremely high-performance code. For an important class of numerical programs, partial evaluation achieves order-of-magnitude speed-ups over conventional Lisp compilation technology. This approach has proven to be especially effective when used in conjunction with schedulers for VLIW and highly pipelined architectures, because the elimination of data structures and procedural abstractions exposes the low-level parallelism inherent in a computation.