Lambda lifting: transforming programs to recursive equations
Proc. of a conference on Functional programming languages and computer architecture
The concept of a supercompiler
ACM Transactions on Programming Languages and Systems (TOPLAS) - The MIT Press scientific computation series
How to make ad-hoc polymorphism less ad hoc
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
Unboxed values as first class citizens in a non-strict functional language
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
The essence of compiling with continuations
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Let-floating: moving bindings to give faster programs
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Partial Evaluation of Computation Process—AnApproach to a Compiler-Compiler
Higher-Order and Symbolic Computation
PSI '99 Proceedings of the Third International Andrei Ershov Memorial Conference on Perspectives of System Informatics
The GRIN Project: A Highly Optimising Back End for Lazy Functional Languages
IFL '96 Selected Papers from the 8th International Workshop on Implementation of Functional Languages
Common Subexpressions Are Uncommon in Lazy Functional Languages
IFL '97 Selected Papers from the 9th International Workshop on Implementation of Functional Languages
Homeomorphic embedding for online termination of symbolic methods
The essence of computation
Secrets of the Glasgow Haskell Compiler inliner
Journal of Functional Programming
Faster laziness using dynamic pointer tagging
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Stream fusion: from lists to streams to nothing at all
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Call-pattern specialisation for Haskell programs
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
A Supercompiler for Core Haskell
Implementation and Application of Functional Languages
Positive supercompilation for a higher order call-by-value language
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Supercompilation by evaluation
Proceedings of the third ACM Haskell symposium on Haskell
Taming code explosion in supercompilation
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
Termination combinators forever
Proceedings of the 4th ACM symposium on Haskell
Efficient parallel stencil convolution in Haskell
Proceedings of the 4th ACM symposium on Haskell
Multi-result supercompilation as branching growth of the penultimate level in metasystem transitions
PSI'11 Proceedings of the 8th international conference on Perspectives of System Informatics
Epic--A library for generating compilers
TFP'11 Proceedings of the 12th international conference on Trends in Functional Programming
Challenges for a trace-based just-in-time compiler for haskell
IFL'11 Proceedings of the 23rd international conference on Implementation and Application of Functional Languages
Hi-index | 0.00 |
Supercompilation is a program optimisation technique that is particularly effective at eliminating unnecessary overheads. We have designed a new supercompiler, making many novel choices, including different termination criteria and handling of let bindings. The result is a supercompiler that focuses on simplicity, compiles programs quickly and optimises programs well. We have benchmarked our supercompiler, with some programs running more than twice as fast than when compiled with GHC.