Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.compilers > #1183
| From | Andy Walker <news@cuboid.co.uk> |
|---|---|
| Newsgroups | comp.compilers |
| Subject | Re: Is multi-level function return possible? |
| Date | 2014-03-26 12:16 +0000 |
| Organization | Not very much |
| Message-ID | <14-03-061@comp.compilers> (permalink) |
| References | (5 earlier) <14-03-046@comp.compilers> <14-03-047@comp.compilers> <14-03-048@comp.compilers> <14-03-053@comp.compilers> <14-03-057@comp.compilers> |
On 24/03/14 17:06, Anton Ertl wrote: >>> Keeping a feature may just be loyalty, but adding it back after it had >>> been removed says something about what the language designer thought >>> about the usefulness of the feature. >> Well, it certainly implies that the designer [or the committee!] >> is admitting to a mistake. > In the case of the C branch of the Algol family, I very much doubt > that the designers see it that way. B had a reduced feature set not > because the language designer did not like the features they removed, > but because B had to work on a very small machine. They added some > features back in C, which ran on larger machines. But B and C are different languages, with differing design aims and criteria. Having a feature in C that was absent from B is not the same as adding to C a feature that had previously been removed. K&R C was not B Mk 2, but a new language with inputs [conscious or unconscious] from many languages, including (B)(CPL) and Algol 68. OTOH, modern versions of C have several features missing from K&R C but present in [eg] Algol. Presumably the committee at least feels that their omission had been a mistake; I don't know whether K&R felt the same way. > The designers of > C++, Java and C# are different persons than the designers of B and C, > so if they add a feature, why would they see it as "admitting to a > mistake"? Again, these are different languages and it's one thing to design a new language with new aims [which may include being leaner and meaner than earlier languages], and quite another to revise a language to include features previously dropped. >> [...] >>> "Parameters have a run-time cost": So has access to non-local >>> variables. >> That depends on the machine and compiler. The first compiler I >> used extensively [for Atlas Autocode] accessed variables at lexical >> depth N by offsetting from register N, so all variables were accessed >> at exactly the same cost. > So this compiler maintained a display in the registers. The costs here are: > 1) Accessing the variable in memory, whereas a parameter can be passed > in a register and accessed in a register. As above, it depends on the machine and compiler. On Atlas, the registers were 24 bits whereas most parameters were 48 bits. Integers were usually stored as denormalised reals [ie, also 48 bits] because multiplications and divisions had to be done in the accumulator anyway [and there were only very limited shift instructions]. > 2) Maintaining the display. AFAIK it turned out that maintaining the > display is more costly in typical uses than the access cost it saves, > so displays fell out of favour. Well, it's one instruction on entry to a procedure and one on exit, so it's not exactly expensive. It's certainly cheaper than passing several parameters around all the time, so the overall balance depends on how many and how often intermediate variables are used. I thought that displays fell out of favour more because of a paucity of registers? Not many minis and micros had the 100+ available to the general user on Atlas. But in any case, you are again looking only at the cost in terms of computing resources, and not at the programmer's view. The notions of "literate" or "top-down" programming may have fallen out of favour, but in the pre-Unix era [after which the emphasis switched to tools and to libraries] it was natural to write programs in the form of nested procedures, each of which was expanded in turn as the program developed. Functions also were naturally written within the procedures where they were used, and variables were declared at the most natural level for their life-times. It's not impossible to write C programs that way, but it's much harder than the equivalent [eg] Pascal. > [We do forget that Ritchie's C compiler ran in 12K bytes of RAM, > two passes plus assembler, and generated quite respectable code > for the PDP-11. -John] 12K? Luxury. Why, in my day, .... But some early compilers ran in ridiculously small computers by modern standards. -- Andy Walker, Nottingham. [C was influenced by PL/I. C++ is where the Algol68 got mixed in, and some of the C++ stuff was backported into C. -John]
Back to comp.compilers | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Is multi-level function return possible? noitalmost <noitalmost@cox.net> - 2014-03-10 15:46 -0400
Re: Is multi-level function return possible? Kaz Kylheku <kaz@kylheku.com> - 2014-03-11 05:20 +0000
Re: Is multi-level function return possible? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-03-11 13:04 +0000
Re: Is multi-level function return possible? Kaz Kylheku <kaz@kylheku.com> - 2014-03-11 22:15 +0000
Re: Is multi-level function return possible? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-03-13 17:05 +0000
Re: Is multi-level function return possible? Bill Findlay <yaldnif.w@blueyonder.co.uk> - 2014-03-14 01:28 +0000
Re: Is multi-level function return possible? Ivan Godard <ivan@ootbcomp.com> - 2014-03-13 18:32 -0700
Re: Is multi-level function return possible? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-03-14 20:27 +0000
Re: Is multi-level function return possible? George Neuner <gneuner2@comcast.net> - 2014-03-14 02:39 -0400
Re: Is multi-level function return possible? Kaz Kylheku <kaz@kylheku.com> - 2014-03-14 21:34 +0000
Re: Is multi-level function return possible? Marco van de Voort <marcov@toad.stack.nl> - 2014-03-14 22:59 +0000
Re: Is multi-level function return possible? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-03-16 17:19 +0000
Re: Is multi-level function return possible? Marco van de Voort <marcov@toad.stack.nl> - 2014-03-16 18:39 +0000
Re: Is multi-level function return possible? Andy Walker <news@cuboid.co.uk> - 2014-03-16 19:45 +0000
Re: Is multi-level function return possible? Bill Findlay <yaldnif.w@blueyonder.co.uk> - 2014-03-17 16:15 +0000
Re: Is multi-level function return possible? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-03-18 17:36 +0000
Re: Is multi-level function return possible? Andy Walker <news@cuboid.co.uk> - 2014-03-21 02:04 +0000
Re: Is multi-level function return possible? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-03-21 02:50 +0000
Re: design of PL/I, was Is multi-level function return possible? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-03-21 06:43 +0000
Re: design of PL/I, was Is multi-level function return possible? noitalmost <noitalmost@cox.net> - 2014-03-26 14:16 -0400
Re: exception catching in PL/I, was Is multi-level function return possible? "Robin Vowels" <robin51@dodo.com.au> - 2014-03-27 21:08 +1100
Re: Is multi-level function return possible? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-03-24 17:06 +0000
Re: Is multi-level function return possible? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-03-24 20:01 +0000
Re: Is multi-level function return possible? George Neuner <gneuner2@comcast.net> - 2014-03-26 04:00 -0400
Re: Is multi-level function return possible? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2014-03-27 01:58 +0100
Re: Is multi-level function return possible? Stefan Monnier <monnier@iro.umontreal.ca> - 2014-04-07 14:48 -0400
Re: Is multi-level function return possible? Andy Walker <news@cuboid.co.uk> - 2014-03-26 12:16 +0000
Re: Is multi-level function return possible? Andy Walker <news@cuboid.co.uk> - 2014-03-26 17:34 +0000
Re: history of C, was Is multi-level function return possible? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-03-27 00:05 +0000
Re: Is multi-level function return possible? Bakul Shah <usenet@bitblocks.com> - 2014-03-15 10:28 -0700
Re: Is multi-level function return possible? George Neuner <gneuner2@comcast.net> - 2014-03-14 02:44 -0400
Re: Is multi-level function return possible? Marco van de Voort <marcov@toad.stack.nl> - 2014-03-14 19:38 +0000
Re: Is multi-level function return possible? Kaz Kylheku <kaz@kylheku.com> - 2014-03-14 21:36 +0000
Re: Is multi-level function return possible? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-03-14 21:47 +0000
Re: Is multi-level function return possible? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2014-03-15 13:34 +0100
Re: Is multi-level function return possible? Ian Lance Taylor <ian@airs.com> - 2014-03-14 16:55 -0700
Re: Is multi-level function return possible? George Neuner <gneuner2@comcast.net> - 2014-03-11 13:56 -0400
Re: Is multi-level function return possible? federation2005@netzero.com - 2014-03-26 17:39 -0700
Re: catch and throw, was Is multi-level function return possible? rpw3@rpw3.org (Rob Warnock) - 2014-03-27 04:23 +0000
Re: catch and throw, was Is multi-level function return possible? Kaz Kylheku <kaz@kylheku.com> - 2014-03-27 05:44 +0000
Re: catch and throw, was Is multi-level function return possible? Bakul Shah <usenet@bitblocks.com> - 2014-03-26 23:20 -0700
Re: catch and throw, was Is multi-level function return possible? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-03-27 19:21 +0000
Re: exception catching in PL/I "Robin Vowels" <robin51@dodo.com.au> - 2014-03-28 10:50 +1100
Re: exception catching in PL/I Martin Ward <martin@gkc.org.uk> - 2014-04-16 14:32 +0100
Re: catch and throw, was Is multi-level function return possible? mac <acolvin@efunct.com> - 2014-03-28 23:08 +0000
Re: catch and throw, was Is multi-level function return possible? Ivan Godard <ivan@ootbcomp.com> - 2014-03-28 18:24 -0700
Re: catch and throw, was Is multi-level function return possible? Kaz Kylheku <kaz@kylheku.com> - 2014-03-29 02:47 +0000
Re: catch and throw, was Is multi-level function return possible? Ivan Godard <ivan@ootbcomp.com> - 2014-03-28 21:32 -0700
Re: catch and throw, was Is multi-level function return possible? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-03-29 03:38 +0000
Re: precise and imprecise, was catch and throw, was Is multi-level function return possible? Ivan Godard <ivan@ootbcomp.com> - 2014-03-28 22:12 -0700
Re: catch and throw, was Is multi-level function return possible? Kaz Kylheku <kaz@kylheku.com> - 2014-03-29 02:07 +0000
Re: catch and throw, was Is multi-level function return possible? Alan Bawden <alan@scooby-doo.csail.mit.edu> - 2014-03-29 02:44 -0400
Re: PL/I exceptions, was catch and throw, was Is multi-level function return possible? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-03-29 02:40 +0000
Re: PL/I exceptions "Robin Vowels" <robin51@dodo.com.au> - 2014-03-30 01:58 +1100
Re: catch and throw, was Is multi-level function return possible? George Neuner <gneuner2@comcast.net> - 2014-03-28 03:52 -0400
Re: Is multi-level function return possible? Louis Krupp <lkrupp@pssw.com> - 2014-03-11 15:16 -0600
Re: Is multi-level function return possible? noitalmost <noitalmost@cox.net> - 2014-03-15 12:21 -0400
csiph-web