Re: [stack] Cat article submission to Doctor Dobbs Journal

"Christopher Diggins" <[email protected]>
Newsgroups gmane.comp.lang.concatenative
Message-ID <[email protected]>
On Feb 10, 2008 12:25 PM, William Tanksley, Jr <[email protected]> wrote:
> Christopher Diggins <[email protected]> wrote:
> > > Now I find a real disagreement. First-class functions aren't at all
> > > part of the definition of "concatenative"
>
> > My bad, I didn't mean to imply that. They are key to why Joy is so
> > interesting (to me at least) though.
>
> Definitely. You're right that they belong in the intro.
>
>
> > > nor are branch statements
> > > antithetical to concatenativity.
>
> > I really didn't mean to imply that one neither. My point was that the
> > fact that Manfred leaving branch statements (by which I mean goto
> > statements) out was significant (is that contentious?). I wasnt trying
> > to say anything there about concatenative languages in general. I've
> > tried to clarify.
>
> What previous concatenative language had GOTO statements?

Forth has BRANCH and BRANCH? Do you consider Forth a concatenative
language? Either way I am talking explicitly about stack-based
languages so Forth definitely has to be considered.

>  I don't
> think Manfred "left them out"... They're a little hard to put in, so
> they were rare at best in other concatenative languages. I assumed you
> were talking about special syntax for conditionals, which Manfred
> removed the need for when he supplied function literals.

I consider conditionals (and other control flow constructs) as simply
syntactic sugar for branch statements. However, I will try to make it
less contentious, and my intention more clear.

> > > A possible replacement:
>
> > > "Manfred's primary innovation with Joy was to introduce first class
> > > functions and function literals (called quotations). The resulting
> > > language shares many of the advantages of functional languages (e.g.
> > > it is easy to reason about) and is particularly expressive."
>
> > I like that, but the goto removal is significant, and should be left
> > because with gotos you wouldn't have the nice rewriting properties
> > that you have now.
>
> Good point... But that's because of the removal of syntax (or the
> regularization of syntax), not so much because of the removal of GOTOs
> (which are merely a particular type of syntax, and one which most
> concatenative languages don't have anyhow).

You keep saying concatenative languages, and I am talking about
stack-based languages. I am still not sure which languages are
technically concatenative (is Forth? is JVML? is PostScript?). I am
referring to things like MSIL, JVML, and Forth all of which have
explicit gotos (i.e. branches / jumps / conditionals / etc.).
Historically branching is part of stack
languages, because they lacked higher-order functions. However
PostScript breaks this rule, and I am concerned that I may be beging
inaccurate when we consider it. It seems that PostScript does have a
notion of function literals before Joy, so I have to be careful how I
refer to the contributions of Joy.

> > > Unfortunately, this removes all mention of "concatenative" from your
> > > article, but since you didn't really discuss it I don't think it's a
> > > loss. I do think you could be more precise than "is particularly
> > > expressive", though... I'm not sure what you mean by it, although it
> > > looks like a compliment :-).
>
> > By expressive I meant that we can say a lot with a little. (e.g. a few
> > instructions can convey a sophisticated concept). I've tried to
> > rephrase.
>
> Cool.
>
>
> > I look forward to more of your comments, thanks!
>
> Having skimmed the rest, I like what you have from there on... I could
> hunt for more nits to pick, but don't have the time and might not find
> any anyhow.

Thank you very much!!

- Christopher
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.