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. Weston},
  • Mark W. Bailey, N. Weston
  • Published 2001
  • 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… CONTINUE READING

    Figures and Tables from this paper.

    Modern Compiler Design
    • 78
    • Open Access
    Code-carrying theory
    • 8
    • Open Access
    Modern Compiler Design 2nd edition
    • 2
    • Open Access
    Increasing energy efficiency and instruction scheduling by software prefetching


    Publications referenced by this paper.
    Rabbit: A Compiler for Scheme
    • 501
    A Retargetable C Compiler: Design and Implementation
    • 381
    • Highly Influential
    • Open Access
    A portable global optimizer and linker
    • 212
    Orbit: an optimizing compiler for scheme
    • 326
    The SPARC architecture manual : version 9
    • 476
    • Open Access
    A practical system fljr intermodule code optimization at link-time
    • 166
    • Open Access
    Code generation and optimization for embedded digital signal processors
    • 99
    A code generation interface for ANSI C
    • 80
    • Highly Influential
    • Open Access
    The Advantages of Machine-Dependent Global Optimization
    • 42
    Efficient stack allocation for tail-recursive languages
    • 26
    • Open Access