Output details
11 - Computer Science and Informatics
University of St Andrews
Scrapping your inefficient engine : using partial evaluation to improve domain-specific language implementation
<08>Embedded Domain Specific Languages (EDSLs) are increasingly popular for giving high-level abstractions suitable for domain experts. The associated performance overhead can be mitigated using partial evaluation, but requires sophisticated techniques to achieve good results.
We show that by annotating the EDSL with dependent types, not only can we capture important program properties, we can also exploit type information to entirely remove the abstraction overhead, following four simple rules. We give several examples, and show that our resulting verified programs are competitive with equivalent C and Java programs. This paper was published in the premier conference on Functional Programming.