Partial evaluation of Maple

  • Authors:
  • Jacques Carette;Michael Kucera

  • Affiliations:
  • McMaster University, 1280 Main St. West, Hamilton, Ontario, Canada, L8S 4K1;290 Skopit Rd, Richmond Hill, Ontario, Canada, L4C 2Y8

  • Venue:
  • Science of Computer Programming
  • Year:
  • 2011

Quantified Score

Hi-index 0.01

Visualization

Abstract

Having been convinced of the potential benefits of partial evaluation, we wanted to apply these techniques to code written in Maple, our Computer Algebra System of choice. Maple is a very large language, with a number of non-standard features. When we tried to implement a partial evaluator for it, we ran into a number of difficulties for which we could find no solution in the literature. Undaunted, we persevered and ultimately implemented a working partial evaluator with which we were able to very successfully conduct our experiments, first on small codes, and now on actual routines taken from Maple's own library. Here, we document the techniques we had to invent or adapt to achieve these results.