From: Eric Chomko on 24 Feb 2010 14:31 On Feb 23, 2:07 pm, "(see below)" <yaldni...(a)blueyonder.co.uk> wrote: > On 23/02/2010 17:52, in article > 3ec03225-3a0f-4bcd-9db1-51201d1b3...(a)w12g2000vbj.googlegroups.com, "Eric > > Chomko" <pne.cho...(a)comcast.net> wrote: > > But an ALGOL "activation record" (stack frame) had a lot more than > > that. As I recall, they copied a lot more just pointers and parameter > > values. > > Just the usual red tape: return address, frame pointer of caller; and either > a static pointer or some housekeeping for 'display' registers (if used) to > access non-locals. But bear in mind that in decent languages arrays are > storable values, so a value array parameter gets copied in toto, unlike C.. > Are you saying that C doesn't implement true recursion? I have only used recursion in college and not with C. ALGOL, SIMPL-T and LISP were the only languages I used to write recursive algorithms.
From: Weng Tianxiang on 24 Feb 2010 15:19 glen, "More to the hardware side, an architecture still exists even if no implementations of it exist. (Though in most cases at least one still does.) " Can you list them fully? I am interested in them. Weng
From: (see below) on 24 Feb 2010 18:20 On 24/02/2010 19:31, in article d902c75e-e33a-4281-a796-7c56c3276066(a)o16g2000prh.googlegroups.com, "Eric Chomko" <pne.chomko(a)comcast.net> wrote: > On Feb 23, 2:07�pm, "(see below)" <yaldni...(a)blueyonder.co.uk> wrote: >> On 23/02/2010 17:52, in article >> 3ec03225-3a0f-4bcd-9db1-51201d1b3...(a)w12g2000vbj.googlegroups.com, "Eric >> >> Chomko" <pne.cho...(a)comcast.net> wrote: >>> But an ALGOL "activation record" (stack frame) had a lot more than >>> that. As I recall, they copied a lot more just pointers and parameter >>> values. >> >> Just the usual red tape: return address, frame pointer of caller; and either >> a static pointer or some housekeeping for 'display' registers (if used) to >> access non-locals. But bear in mind that in decent languages arrays are >> storable values, so a value array parameter gets copied in toto, unlike C. > >> > > Are you saying that C doesn't implement true recursion? I have only > used recursion in college and not with C. ALGOL, SIMPL-T and LISP were > the only languages I used to write recursive algorithms. > No. I'm at a loss as to how you could put that interpretation on it. I'm saying that array parameters in C are not called by value, but they are in Algol 60 and cognate languages, requiring more stack space than C does. -- Bill Findlay <surname><forename> chez blueyonder.co.uk
From: Joe Pfeiffer on 24 Feb 2010 18:50 Eric Chomko <pne.chomko(a)comcast.net> writes: > On Feb 23, 2:07�pm, "(see below)" <yaldni...(a)blueyonder.co.uk> wrote: >> On 23/02/2010 17:52, in article >> 3ec03225-3a0f-4bcd-9db1-51201d1b3...(a)w12g2000vbj.googlegroups.com, "Eric >> >> Chomko" <pne.cho...(a)comcast.net> wrote: >> > But an ALGOL "activation record" (stack frame) had a lot more than >> > that. As I recall, they copied a lot more just pointers and parameter >> > values. >> >> Just the usual red tape: return address, frame pointer of caller; and either >> a static pointer or some housekeeping for 'display' registers (if used) to >> access non-locals. But bear in mind that in decent languages arrays are >> storable values, so a value array parameter gets copied in toto, unlike C. >> > > Are you saying that C doesn't implement true recursion? I have only > used recursion in college and not with C. ALGOL, SIMPL-T and LISP were > the only languages I used to write recursive algorithms. Yes, C does recursion. Local variables are also on the stack. -- As we enjoy great advantages from the inventions of others, we should be glad of an opportunity to serve others by any invention of ours; and this we should do freely and generously. (Benjamin Franklin)
From: Joe Pfeiffer on 24 Feb 2010 18:55
"(see below)" <yaldnif.w(a)blueyonder.co.uk> writes: > On 24/02/2010 19:31, in article > d902c75e-e33a-4281-a796-7c56c3276066(a)o16g2000prh.googlegroups.com, "Eric > Chomko" <pne.chomko(a)comcast.net> wrote: > >> On Feb 23, 2:07�pm, "(see below)" <yaldni...(a)blueyonder.co.uk> wrote: >>> On 23/02/2010 17:52, in article >>> 3ec03225-3a0f-4bcd-9db1-51201d1b3...(a)w12g2000vbj.googlegroups.com, "Eric >>> >>> Chomko" <pne.cho...(a)comcast.net> wrote: >>>> But an ALGOL "activation record" (stack frame) had a lot more than >>>> that. As I recall, they copied a lot more just pointers and parameter >>>> values. >>> >>> Just the usual red tape: return address, frame pointer of caller; and either >>> a static pointer or some housekeeping for 'display' registers (if used) to >>> access non-locals. But bear in mind that in decent languages arrays are >>> storable values, so a value array parameter gets copied in toto, unlike C. >> >>> >> >> Are you saying that C doesn't implement true recursion? I have only >> used recursion in college and not with C. ALGOL, SIMPL-T and LISP were >> the only languages I used to write recursive algorithms. >> > > No. I'm at a loss as to how you could put that interpretation on it. You forgot to mention local variables are in the activation record. When I was an undergrad I spent some time programming FORTRAN on a Harris /6 (I think it was a /6 -- there's something nagging at the back of my mind that says it may have been a /7). Anyway, reading the manual I discovered that return addresses were stacked, and immediately jumped to the conclusion that it could do recursion. It turned out that local variables were static... which meant I spent a *long* time figuring out why my program was producing completely nonsensical results. As Al Stewart once sang, "I was jumping to conclusions, and one of them jumped back." -- As we enjoy great advantages from the inventions of others, we should be glad of an opportunity to serve others by any invention of ours; and this we should do freely and generously. (Benjamin Franklin) |