Re: Proper Tail Recursive C++

hbaker@netcom.com (Henry Baker)
13 Mar 1997 23:43:07 -0500

          From comp.compilers

Related articles
[5 earlier articles]
Re: Proper Tail Recursive C++ bothner@cygnus.com (1997-02-23)
Re: Proper Tail Recursive C++ andy@wonderworks.co.uk (Andy Armstrong) (1997-02-27)
Re: Proper Tail Recursive C++ gary@wheel.tiac.net (1997-03-01)
Re: Proper Tail Recursive C++ Wilco.Dijkstra@armltd.co.uk (Wilco Dijkstra) (1997-03-01)
Re: Proper Tail Recursive C++ hbaker@netcom.com (1997-03-05)
Re: Proper Tail Recursive C++ njl@cyberpass.net (1997-03-09)
Re: Proper Tail Recursive C++ hbaker@netcom.com (1997-03-13)
Re: Proper Tail Recursive C++ fjh@murlibobo.cs.mu.OZ.AU (1997-03-13)
Re: Proper Tail Recursive C++ ramsdell@linus.mitre.org (1997-03-16)
Re: Proper Tail Recursive C++ danwang@atomic.CS.Princeton.EDU (1997-03-18)
Re: Proper Tail Recursive Java robison@kai.com (Arch Robison) (1997-03-18)
Re: Proper Tail Recursive C++ njl@cyberpass.net (1997-03-21)
Re: Proper Tail Recursive C++ erik.schnetter@student.uni-tuebingen.de (1997-03-21)
| List of all articles for this month |

From: hbaker@netcom.com (Henry Baker)
Newsgroups: comp.compilers
Date: 13 Mar 1997 23:43:07 -0500
Organization: nil
References: 97-02-111 97-02-131 97-02-141 97-03-042
Keywords: optimize

> [Tail recursion optimization does indeed seem to be of interest mostly to
> users of languages like Scheme that promise garbage collection. -John]


Not at all. Tail recursion is an essential optimization has been
difficult for non-Lisp languages to implement because they are still
stuck with the original Algol-60 stack model. Only in the last few
years have they realized the tremendous speed penalty that actually
building stack frames costs, and hopefully they will recognize the
space penalty at some point as well.


Tail recursion is an optimization that requires special handling
because it is in effect an application of the 'eta' axiom of the
lambda calculus, and eta is known to be independent of the other two
axioms--'beta', which deals with function calls, and 'alpha', which
deals with local variable renaming. To a first approximation,
Algol-60 and its successors appear never to have heard of axiom eta.
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.