Corpus ID: 18514770

Performance Benefits of Tail Recursion Removal in Procedural Languages

  title={Performance Benefits of Tail Recursion Removal in Procedural Languages},
  author={Mark W. Bailey and N. C. Weston},
The removal of tail recursion is a well-known optimization that is often applied by hand. It has been widely implemented in compilers for functional languages, generally through the use of continuation-passing style. This optimization has also been implemented in some commercial compilers for C and other procedural languages. However, its effects in procedural languages have not been adequately documented, nor does the literature contain a detailed description of this optimization. This paper… Expand
Modern Compiler Design
Code-carrying theory
Modern Compiler Design 2nd edition
Increasing energy efficiency and instruction scheduling by software prefetching


Efficient stack allocation for tail-recursive languages
  • C. Hanson
  • Computer Science
  • LISP and Functional Programming
  • 1990
A portable global optimizer and linker
Rabbit: A Compiler for Scheme
The Advantages of Machine-Dependent Global Optimization
Proper tail recursion and space efficiency
A Retargetable C Compiler: Design and Implementation
Ease: an environment for architecture study and experimentation
On the conversion of indirect to direct recursion