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
Unfold/fold program transformations
Algebraic methods in semantics
Why functional programming matters
The Computer Journal - Special issue on Lazy functional programming
Handbook of theoretical computer science (vol. B)
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Towards an automated tupling strategy
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Total correctness by local improvement in the transformation of functional programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proving the correctness of recursion-based automatic program transformations
TAPSOFT '95 Selected papers from the 6th international joint conference on Theory and practice of software development
Constraints to stop higher-order deforestation
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Principal type-schemes for functional programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Deforestation: Transforming Programs to Eliminate Trees
ESOP '88 Proceedings of the 2nd European Symposium on Programming
The Use of Metasystem Transition in Theorem Proving and Program Optimization
Proceedings of the 7th Colloquium on Automata, Languages and Programming
Convergence of Program Transformers in the Metric Space of Trees
MPC '98 Proceedings of the Mathematics of Program Construction
A System for Proving Equivalences of Recursive Programs
Proceedings of the 5th Conference on Automated Deduction
An unfold/fold transformation framework for definite logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Poitín: Distilling Theorems From Conjectures
Electronic Notes in Theoretical Computer Science (ENTCS)
Distilling Programs for Verification
Electronic Notes in Theoretical Computer Science (ENTCS)
Termination combinators forever
Proceedings of the 4th ACM symposium on Haskell
Distillation with labelled transition systems
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
Extracting the essence of distillation
PSI'09 Proceedings of the 7th international Andrei Ershov Memorial conference on Perspectives of Systems Informatics
Proving the equivalence of higher-order terms by means of supercompilation
PSI'09 Proceedings of the 7th international Andrei Ershov Memorial conference on Perspectives of Systems Informatics
Proving the correctness of unfold/fold program transformations using bisimulation
PSI'11 Proceedings of the 8th international conference on Perspectives of System Informatics
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
Higher-level supercompilation as a metasystem transition
Programming and Computing Software
Hi-index | 0.00 |
In this paper, we present a new transformation algorithm called distillation which can automatically transform higher-order functional programs into equivalent tail-recursive programs. Using this algorithm, it is possible to produce superlinear improvement in the runtime of programs. This represents a significant advance over the supercompilation algorithm, which can only produce a linear improvement. Outline proofs are given that the distillation algorithm is correct and that it always terminates.