Related articles |
---|
[18 earlier articles] |
Re: Is multi-level function return possible? ian@airs.com (Ian Lance Taylor) (2014-03-14) |
Re: Is multi-level function return possible? DrDiettrich1@aol.com (Hans-Peter Diettrich) (2014-03-15) |
Re: Is multi-level function return possible? usenet@bitblocks.com (Bakul Shah) (2014-03-15) |
Re: Is multi-level function return possible? noitalmost@cox.net (noitalmost) (2014-03-15) |
Re: Is multi-level function return possible? anton@mips.complang.tuwien.ac.at (2014-03-16) |
Re: Is multi-level function return possible? marcov@toad.stack.nl (Marco van de Voort) (2014-03-16) |
Re: Is multi-level function return possible? news@cuboid.co.uk (Andy Walker) (2014-03-16) |
Re: Is multi-level function return possible? yaldnif.w@blueyonder.co.uk (Bill Findlay) (2014-03-17) |
Re: Is multi-level function return possible? anton@mips.complang.tuwien.ac.at (2014-03-18) |
Re: Is multi-level function return possible? news@cuboid.co.uk (Andy Walker) (2014-03-21) |
Re: Is multi-level function return possible? gah@ugcs.caltech.edu (glen herrmannsfeldt) (2014-03-21) |
Re: design of PL/I, was Is multi-level function return possible? gah@ugcs.caltech.edu (glen herrmannsfeldt) (2014-03-21) |
Re: Is multi-level function return possible? anton@mips.complang.tuwien.ac.at (2014-03-24) |
[9 later articles] |
From: | Andy Walker <news@cuboid.co.uk> |
Newsgroups: | comp.compilers |
Date: | Sun, 16 Mar 2014 19:45:44 +0000 |
Organization: | Not very much |
References: | 14-03-020 14-03-022 14-03-025 14-03-030 14-03-044 |
Keywords: | Pascal, code |
Posted-Date: | 17 Mar 2014 11:49:40 EDT |
On 16/03/14 17:19, Anton Ertl wrote:
> Language design note: Given that nested functions have fallen out of
> favour in the Algol-family world (in C and its offspring), I wonder if
> they only really gain usefulness when combined with first-class
> closures.
They are also useful for variable hiding and space reclamation.
If all functions are at the outermost level, then they can only access
local or global variables, and so can communicate with each other only
via globals or parameters. Global space can never be reclaimed except
through sophisticated optimisations, and parameters have a run-time cost.
I assume that the designers of "C and its offspring" decided that the
cost of single-level functions was outweighed by the relative ease of
compilation and code generation. Whether that was a correct decision,
I don't know, but it was a major hassle for me in the days when we had
to convert a mass of Algol code to C.
--
Andy Walker,
Nottingham.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.