Program interpolation is a new type of transformation that given an input program written in a specially constructed Domain Specific Language (DSL), produces a family of functionally equivalent instruction sequences as output. Each sequence is an "interpolation" between the control-flows of implementation strategies supplied in the input program. The purpose of the transformation is to expose behavioural differences (e.g. performance) within the sequences, and thus allow automated optimisation with respect to architectural trade-offs that are difficult to quantify and model. We present results from a prototype compiler that demonstrate a 63% speedup in the domain of multi-precision integer arithmetic.
|Translated title of the contribution||Program Interpolation|
|Title of host publication||Partial Evaluation and Program Manipulation - PEPM|
|Publisher||Association for Computing Machinery (ACM)|
|Publication status||Published - 2009|