Re: Detecting endless recursion?

nmm1@cus.cam.ac.uk (Nick Maclaren)
4 Feb 2004 21:44:13 -0500

          From comp.compilers

Related articles
[18 earlier articles]
Re: Detecting endless recursion? joachim.durchholz@web.de (Joachim Durchholz) (2004-02-01)
Re: Detecting endless recursion? joachim.durchholz@web.de (Joachim Durchholz) (2004-02-01)
Re: Detecting endless recursion? nmm1@cus.cam.ac.uk (2004-02-01)
Re: Detecting endless recursion? derkgwen@HotPOP.com (Derk Gwen) (2004-02-01)
Re: Detecting endless recursion? lex@cc.gatech.edu (Lex Spoon) (2004-02-01)
Re: Detecting endless recursion? bear@sonic.net (Ray Dillinger) (2004-02-04)
Re: Detecting endless recursion? nmm1@cus.cam.ac.uk (2004-02-04)
Re: Detecting endless recursion? witness@t-online.de (Uli Kusterer) (2004-02-04)
Re: Detecting endless recursion? joachim.durchholz@web.de (Joachim Durchholz) (2004-02-08)
Re: Detecting endless recursion? alexc@std.com (Alex Colvin) (2004-02-08)
Re: Detecting endless recursion? cymric73@hotmail.com (Maarten D. de Jong) (2004-02-08)
Re: Detecting endless recursion? kenrose@tfb.com (Ken Rose) (2004-02-12)
Re: Detecting endless recursion? witness@t-online.de (Uli Kusterer) (2004-02-13)
[2 later articles]
| List of all articles for this month |
From: nmm1@cus.cam.ac.uk (Nick Maclaren)
Newsgroups: comp.compilers
Date: 4 Feb 2004 21:44:13 -0500
Organization: University of Cambridge, England
References: 04-01-050 04-01-086 04-01-119 04-01-123 04-02-015
Keywords: debug, courses
Posted-Date: 04 Feb 2004 21:44:13 EST

Joachim Durchholz <joachim.durchholz@web.de> writes:
|>
|> > Like many advanced optimisations,
|>
|> Tail recursion removal is as far from advanced as I can imagine.
|> Actually I have seen it taught in undergraduate courses.


I wasn't meaning advanced in that sense. I was using it in the sense
that it is an optimisation which has effects that may be visible to
the programmer. In this, it is like converting multiplication to
division, the use of associativity for the reordering of operations
and so on, and unlike register allocation, simple common expression
removal and strength reduction in for-loops.


Most commercial compilers separate the two classes of optimisation and
invoke the 'advanced' ones only at higher levels. There is usually a
third class, where it may break some of the language standard's more
subtle promises.


Regards,
Nick Maclaren.


Post a followup to this message

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