Article ID Journal Published Year Pages File Type
433485 Science of Computer Programming 2011 23 Pages PDF
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.

Research highlights► We present an online partial evaluator for the language of the CAS Maple. ► The evaluator is polyvariant, syntax-directed and works without annotations. ► It allows us to extract efficient specialized code from generic implementations. ► We can also use it to extract fully symbolic algorithms from non-symbolic code.

Related Topics
Physical Sciences and Engineering Computer Science Computational Theory and Mathematics
Authors
, ,