ComputingComputer ScienceAlgorithmsProgramming LanguagesTheory Of ComputationData-flow AnalysisFunctional ProgrammingRecursion TheoryProgram SynthesisProgram TransformationTermination Of Functional ProgramsTermination Of Recursive Programs
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.
18
A theory of type polymorphism in programming
Robin Milner · Journal of Computer and System Sciences · 1978 · 2.2K citations · Full text
Principal type-schemes for functional programs
Robin Milner · 1982 · 1.1K citations
The implementation of functional programming languages
Microprocessors and Microsystems · 1987 · 1.1K citations
Why Functional Programming Matters
John Hughes · The Computer Journal · 1989 · 739 citations · Full text