This is a short tutorial introduction to online partial evaluation. We show how to write a simple online partial evaluator for a simple, pure, first-order, functional programming language. In particular, we show that the partial evaluator can be derived as a variation on a compositionally defined interpreter. We demonstrate the use of the resulting partial evaluator for program optimization in the context of model-driven development.
Tutorial on Online Partial Evaluation
William R. Cook and Ralf Lämmel
Also available background material:
We also have a more complete elaboration of this approach, called Hybrid Partial Evaluation.