Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #60433
| From | "Rudy Velthuis" <newsgroups@rvelthuis.de> |
|---|---|
| Newsgroups | comp.lang.forth |
| Subject | Re: What is Forth anyway? |
| Date | 2017-06-07 19:26 +0000 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <xn0kqyf6hawugxy007@nntp.aioe.org> (permalink) |
| References | (3 earlier) <dfbcca19-d831-4baa-ba2d-f54e57e53ded@googlegroups.com> <xn0kqvbfb93ngqc004@nntp.aioe.org> <8c451582-6995-4325-a0f5-70c797088836@googlegroups.com> <xn0kqvm3u9fxgfp003@nntp.aioe.org> <rJudnfuBpqoW9qvEnZ2dnUU7-YPNnZ2d@supernews.com> |
Andrew Haley wrote: > Rudy Velthuis <newsgroups@rvelthuis.de> wrote: > >> > > >> > But it also requires quite a lot of stack juggling, which is not > >> > required with registers. I am not sure if you have the same > number >> > of memory accesses without a stack, especially if dat can > be passed >> > in registers directly. > >> > >> Thank you very much, Captain Obvious! > > > > It may be obvious, but it also shows why stack based passing is not > > so optimal as you claim it to be. It is nice concept, but I doubt it > > is the most efficient way to pass parameters. After all, it used to > > be the main way to pass parameters in most other languages too. But > > these had/have ways to access each of them by name, not just the > > one(s) on the top of the stack. > > That's all true, but there are disadvantages too. > > If I've already paid for those registers, which require large and > complex electronics, I probably also have multiple functional units > and instructions per clock, so I might as well use them all as much as > possible. All other things being equal, that is, but they rarely are! > > To translate any programming language into near-optimum code for a > register machine is a hard problem. And I'm going to end up with a > lot of software to do that. Oh? Why are you going to end up with a lot of software to do that? Parameter passing is generally governed by ABIs or calling conventions. There is no need to allocate registers for that. And parameter passing through a stack is also governed by a certain order. Why would that be more optimal, especially if you must do extra work to access anything but the top of the stack and to prevent values from being consumed? What makes random access to such a stack (like in older versions of popular programming languages, which use the machine stack to pass parameters) harder to use? Sure, you must have a good register allocator to be able to keep as many values in registers. But how is that different for a stack based language? Forth stacks are, as far as I know, generally in memory, like local variables and parameters in other non-stack-based languages, who also, most of the time, live on a stack (the machine stack). And yes, I know there are optimizing Forth implementations. But I assume these have a register allocator too, and don't constantly push and pop items. That probably means they need "a lot of software" too, or do they? So I still don't see why parameter passing, or register allocation is easier or more optimal in a stack based language. I personally find random access to values like parameters or local variables easier to handle than stack juggling. No need for the constant use of DUP (or ?DUP) or OVER (in other words: copying), etc. in order to keep a value from being consumed (and lost). Sure, you can rearrange your code so that you avoid some of it. But that also requires extra effort from the programmer. -- Rudy Velthuis http://www.rvelthuis.de "I don't care to belong to a club that accepts people like me as members." -- Groucho Marx
Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
What is Forth anyway? Brad Eckert <hwfwguy@gmail.com> - 2017-06-03 20:31 -0700
Re: What is Forth anyway? lehs <skydda.barnen@gmail.com> - 2017-06-03 23:05 -0700
Re: What is Forth anyway? Howerd <howerdo@yahoo.co.uk> - 2017-06-04 03:23 -0700
Re: What is Forth anyway? lehs <skydda.barnen@gmail.com> - 2017-06-04 03:39 -0700
Re: What is Forth anyway? Howerd <howerdo@yahoo.co.uk> - 2017-06-04 03:17 -0700
Re: What is Forth anyway? Howerd <howerdo@yahoo.co.uk> - 2017-06-04 03:18 -0700
What is Forth anyway? Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-06-04 05:17 -0700
Re: What is Forth anyway? Howerd <howerdo@yahoo.co.uk> - 2017-06-04 07:13 -0700
Re: What is Forth anyway? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-06-05 02:38 -0500
Re: What is Forth anyway? NN <november.nihal@gmail.com> - 2017-06-04 05:27 -0700
Re: What is Forth anyway? "HAA" <someone@microsoft.com> - 2017-06-04 23:07 +1000
Re: What is Forth anyway? Alex <alex@rivadpm.com> - 2017-06-04 19:12 +0100
Re: What is Forth anyway? Howerd <howerdo@yahoo.co.uk> - 2017-06-04 12:55 -0700
Re: What is Forth anyway? Alex <alex@rivadpm.com> - 2017-06-04 21:41 +0100
Re: What is Forth anyway? "HAA" <someone@microsoft.com> - 2017-06-05 15:54 +1000
Re: What is Forth anyway? Howerd <howerdo@yahoo.co.uk> - 2017-06-05 02:05 -0700
Re: What is Forth anyway? Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-06-04 17:33 -0700
Re: What is Forth anyway? "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-06-05 12:54 +0000
Re: What is Forth anyway? "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-06-04 22:14 +0000
Re: What is Forth anyway? hughaguilar96@gmail.com - 2017-06-04 16:39 -0700
Re: What is Forth anyway? "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-06-05 12:44 +0000
Re: What is Forth anyway? hughaguilar96@gmail.com - 2017-06-05 08:10 -0700
Re: What is Forth anyway? gavino himself <jackvanc3@gmail.com> - 2017-06-05 10:01 -0700
Re: What is Forth anyway? "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-06-05 19:29 +0000
Re: What is Forth anyway? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-06-06 03:44 -0500
Re: What is Forth anyway? "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-06-07 19:26 +0000
Re: What is Forth anyway? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-06-08 02:06 -0500
Re: What is Forth anyway? "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-06-09 17:09 +0000
Re: What is Forth anyway? "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-06-05 19:41 +0000
Re: What is Forth anyway? lehs <skydda.barnen@gmail.com> - 2017-06-06 02:19 -0700
Re: What is Forth anyway? Alex <alex@rivadpm.com> - 2017-06-06 10:41 +0100
Re: What is Forth anyway? Ron Aaron <rambamist@gmail.com> - 2017-06-06 12:45 +0300
Re: What is Forth anyway? Alex <alex@rivadpm.com> - 2017-06-06 11:23 +0100
Re: What is Forth anyway? Ron Aaron <rambamist@gmail.com> - 2017-06-06 13:30 +0300
Re: What is Forth anyway? Alex <alex@rivadpm.com> - 2017-06-06 12:55 +0100
Re: What is Forth anyway? Ron Aaron <rambamist@gmail.com> - 2017-06-06 14:57 +0300
Re: What is Forth anyway? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-06-06 13:34 +0000
Re: What is Forth anyway? Ron Aaron <rambamist@gmail.com> - 2017-06-06 17:07 +0300
Re: What is Forth anyway? Coos Haak <htrofhc@gmail.com> - 2017-06-06 16:51 +0200
Re: What is Forth anyway? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-06-06 16:32 +0000
Re: What is Forth anyway? Coos Haak <htrofhc@gmail.com> - 2017-06-07 01:37 +0200
Re: What is Forth anyway? "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-06-07 19:29 +0000
Re: What is Forth anyway? Cecil Bayona <cbayona@cbayona.com> - 2017-06-07 14:56 -0500
Re: What is Forth anyway? Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-06-06 04:48 -0500
Re: What is Forth anyway? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-06-06 10:10 +0000
Re: What is Forth anyway? "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-06-07 19:28 +0000
Re: What is Forth anyway? Cecil Bayona <cbayona@cbayona.com> - 2017-06-07 14:54 -0500
Re: What is Forth anyway? lehs <skydda.barnen@gmail.com> - 2017-06-07 19:42 -0700
Re: What is Forth anyway? "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-06-09 17:12 +0000
Re: What is Forth anyway? Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-06-04 17:40 -0700
Re: What is Forth anyway? "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-06-05 12:51 +0000
Re: What is Forth anyway? Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-06-05 17:19 -0700
Re: What is Forth anyway? "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-06-07 19:32 +0000
Re: What is Forth anyway? Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-06-07 16:50 -0700
Re: What is Forth anyway? "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-06-09 17:15 +0000
Re: What is Forth anyway? Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-06-09 13:04 -0700
Re: What is Forth anyway? "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-06-09 21:27 +0000
Re: What is Forth anyway? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-06-06 10:19 +0000
Re: What is Forth anyway? "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-06-07 19:38 +0000
Re: What is Forth anyway? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-06-08 11:52 +0000
Re: What is Forth anyway? "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-06-09 17:23 +0000
Re: What is Forth anyway? gavino himself <jackvanc3@gmail.com> - 2017-06-05 07:16 -0700
Re: What is Forth anyway? gavino himself <jackvanc3@gmail.com> - 2017-06-05 07:35 -0700
csiph-web