Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Binding-time analysis and the taming of C pointers
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
ACM SIGSAM Bulletin
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Modern compiler implementation in Java
Modern compiler implementation in Java
A Hybrid Approach to Online and Offline Partial Evaluation
Higher-Order and Symbolic Computation
ISAAC '88 Proceedings of the International Symposium ISSAC'88 on Symbolic and Algebraic Computation
Partial Evaluation of C and Automatic Compiler Generation (Extended Abstract)
CC '92 Proceedings of the 4th International Conference on Compiler Construction
Proceedings of the 2nd international conference on Generative programming and component engineering
Offline partial evaluation can be as accurate as online partial evaluation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Gaussian elimination: a case study in efficient genericity with MetaOCaml
Science of Computer Programming - Special issue on the first MetaOCaml workshop 2004
Logic program specialisation through partial deduction: Control issues
Theory and Practice of Logic Programming
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Multi-stage programming with functors and monads: eliminating abstraction overhead from generic code
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Hi-index | 0.01 |
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.