Who invented the control-flow stack? 
Author Message
 Who invented the control-flow stack?

Who invented the control-flow stack and what's his/her email address?

The origfinal concept of keeping control flow information on a stack
is due to Chuck Moore, I guess. What I am interested in is who
separated the control flow stack (comceptually, not necessarily
really) from the data stack and factored out the words for
manipulating it.

Thanks
- anton
--
M. Anton Ertl                    Some things have to be seen to be believed



Fri, 11 Aug 1995 17:47:14 GMT  
 Who invented the control-flow stack?

Quote:
>Who invented the control-flow stack and what's his/her email address?

        Wil Baden had a lot to do with that concept, but he's no longer
active on the TC. Wil is probably the ace control flow guru in the Forth
community.

                =jax=
--

 # du!isis!koscej!jax        # # X3J14 TC # #  Forth Interest Group #
 # JAX on GEnie              # # for ANS  # #   P.O. Box 2154       #
 # SYSOP RCFB (303) 278-0364 # #  Forth   # #    Oakland, CA 94621  #



Fri, 11 Aug 1995 19:31:41 GMT  
 Who invented the control-flow stack?

Quote:

>Who invented the control-flow stack and what's his/her email address?

>The original concept of keeping control flow information on a stack
>is due to Chuck Moore, I guess.

This can't be right. Knuth ("Fundamental Algorithms", p. 458) says that Turing
used stacks ("reversion storage") for subroutine linkage in 1947, and certainly
the idea of return stacks was in place for the first Algol 60 compilers.

Quote:
>What I am interested in is who
>separated the control flow stack (comceptually, not necessarily
>really) from the data stack and factored out the words for
>manipulating it.

I had to give up my research after finding the Turing reference, but I know the
English Electric KDF9 computer in the 60's had hardware stacks which I think
were intended for expression evaluation and had the obvious manipulation
operators. I don't doubt the idea goes back long before that - perhaps the
place to look is the point at which people started using reverse Polish
(postfix) notation instead of Polish (prefix). Polish notation is the invention
that allows you to dispose of brackets, and can be used as a theoretical tool
in universal algebra, but reverse Polish is convenient for evaluating on a
stack (as Forth users know, of course).

Steve Vickers.



Sat, 12 Aug 1995 22:30:55 GMT  
 Who invented the control-flow stack?

Quote:

>This can't be right. Knuth ("Fundamental Algorithms", p. 458) says that Turing
>used stacks ("reversion storage") for subroutine linkage in 1947, and certainly
>the idea of return stacks was in place for the first Algol 60 compilers.

        The "control flow stack" is not the return stack. The control
flow stack is the conceptual stack which nests unresolved control flow
references (IF THEN etc) until resolved *during compilation*. The
control flow stack, defacto the *data stack* in most Forth implementations,
was recognized in the syntactic specification of Forth embodied in the
draft proposed American National Standard Forth, which veered from
previous standards which had specified the mechanics of control flow
resolution during compilation.

        dpANS-Forth instead took the tack of recognizing the conceptual
entity of the control flow stack and leaving it to the implementor to
produce the concrete reality, most likely to remain, in most systems,
the good ol' data stack.

        Hope this clears up the confusion.

                =jax=
--

 # du!isis!koscej!jax        # # X3J14 TC # #  Forth Interest Group #
 # JAX on GEnie              # # for ANS  # #   P.O. Box 2154       #
 # SYSOP RCFB (303) 278-0364 # #  Forth   # #    Oakland, CA 94621  #



Sun, 13 Aug 1995 10:03:42 GMT  
 Who invented the control-flow stack?

Quote:
>    The "control flow stack" is not the return stack. The control
>flow stack is the conceptual stack which nests unresolved control flow
>references (IF THEN etc) until resolved *during compilation*. The
>control flow stack, defacto the *data stack* in most Forth implementations,
>was recognized in the syntactic specification of Forth embodied in the
>draft proposed American National Standard Forth, which veered from
>previous standards which had specified the mechanics of control flow
>resolution during compilation.

A minor quibble, but I don't think that either the 79- or 83-Standards
specified the mechanics of control flow resolution.  The 78-Standard
(aka Fig Model) did, but that, AFAIK, is the only one.

Maybe I'm misremembering?  I don't have any of the standards documents
at hand at the moment.  But I don't think I'm misremembering.  Perhaps
Jax has just been pouring over dpANS so hard lately that he's forgotten
what was in the earlier standards.  :-)
--
Chris Waters    | the insane don't | "Without gratuitous sex, we would be no



Sun, 13 Aug 1995 20:59:23 GMT  
 Who invented the control-flow stack?
Quote:

> Who invented the control-flow stack and what's his/her email address?

> The origfinal concept of keeping control flow information on a stack
> is due to Chuck Moore, I guess. What I am interested in is who
> separated the control flow stack (comceptually, not necessarily
> really) from the data stack and factored out the words for
> manipulating it.

> Thanks
> - anton
> --
> M. Anton Ertl                    Some things have to be seen to be believed


If you mean the return stack being factored from the parameter stack,
Chuck Moore says he did this. Cf. his interview in the famous August 1980
Byte Magazine on Forth. (BTW, he says FORTH, not Forth -- I guess that was
unconsciously why I followed that usage in my book.)

I recommend looking at that issue of Byte anyway because of the perspective
it will give on the frailty of entrepreneurial efforts. Virtually all of
the companies advertising in that issue are no longer heard from.

--jvn



Mon, 14 Aug 1995 04:27:23 GMT  
 
 [ 6 post ] 

 Relevant Pages 

1. RFI: Control-flow Stack

2. Control-flow stack which may not exist

3. Q. WHAT is the Control Flow Stack?

4. Where is the Control Flow Stack?

5. flows and call-stack ...

6. Smalltalk syntax and flow control

7. Program Flow Control

8. program flow control

9. PROPOSAL: New Control Flow Words

10. Program Flow Control Structures

11. control flow too complicated (was: FOR...NEXT in Eforth)

12. control flow too complicated (was: FOR...NEXT in Eforth)

 

 
Powered by phpBB® Forum Software