Back to Search Start Over

A Scala framework for supercompilation

Authors :
Nathaniel Nystrom
Source :
SCALA@SPLASH
Publication Year :
2017
Publisher :
ACM, 2017.

Abstract

Supercompilation is a program transformation technique that attempts to evaluate programs as much as possible at compile time. Supercompilation has been used for theorem proving, function inversion, and most notably optimization, especially of functional programs. However, the technique has numerous practical problems that prevent it from being applied in mainstream compilers. In this paper, we describe a framework that can be used for experimenting with supercompilation techniques. Our framework allows supercompilers to be constructed directly from an interpreter. The user specifies the interpreter using rewrite rules and the framework handles termination checking, generalization, and residualization. We demonstrate the approach by implementing a supercompiler for JavaScript.

Details

Database :
OpenAIRE
Journal :
Proceedings of the 8th ACM SIGPLAN International Symposium on Scala
Accession number :
edsair.doi...........13546b22fa8d14b346c3b2fdcc09c06d
Full Text :
https://doi.org/10.1145/3136000.3136011