Back to Search
Start Over
A Scala framework for supercompilation
- 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.
- Subjects :
- Programming language
Computer science
Scala
Program transformation
020207 software engineering
02 engineering and technology
computer.software_genre
JavaScript
Abstract machine
Partial evaluation
Automated theorem proving
020204 information systems
0202 electrical engineering, electronic engineering, information engineering
Compiler
computer
computer.programming_language
Compile time
Subjects
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