Re: [stack] the concatenative wikipedia article

"William Tanksley, Jr" <[email protected]>
Newsgroups gmane.comp.lang.concatenative
Message-ID <[email protected]>
pml060912 <[email protected]> wrote:
> "William Tanksley, Jr" <wtanksleyjr@...> wrote:
>> non-associative syntax at all (AKA "flat"). Quotation is a strange
>> thing to throw into an allegedly concatenative combinator base,
>> though; unlike application, it's not an inherent part of the language
>> paradigm; thus, I think my confusion is justified.

> Well, where does Furphy fit in this breakdown?
> (http://users.beagle.com.au/peterl/furphy.html)
> Although it does have quotation, as I mentioned elsewhere that's just
> syntactic sugar. The fundamental constructs are Reverse Polish naming
> and concatenation, which can use the complementary keywords FREEZE and
> THAW to defer and invoke evaluation/execution - and those can be built
> from the return stack manipulation keywords R> and >R already found in
> Forth. That looks fairly associative/flat to me.

Furphy is a fascinating language; I had no idea it had such an
interesting loop system. I'd say that Furphy probably is
flat/completely associative; but note that I'm not sure what to do
with the "Reverse Polish naming" system.

Furphy's loop system isn't strictly needed in order to be completely
associative; a ColorForth-like scheme would also work, where a label
(word name) is identified by a special character, tail recursion is
automatic, and the compiler recognizes the return operator.

For those who don't know ColorForth: Colorforth uses "labels" instead
of having distinct words; unlike Forth, where a word name begins a new
definition (which implies that the old definition is finished), a
ColorForth definition merely implies a new entry point.
Correspondingly, the ";" word in ColorForth compiles a return (which
will normally be optimized to a tail call) rather than strictly ending
the current definition.

ColorForth itself is not flat, because it keeps the concept of
immediate words; however, it would be easy to do the same thing a
Furphy and remove the need for all the immediates.

Unfortunately, Furphy is a foreign language to me, so I can't
understand the discussion of FREEZE and THAW. I think the use of
"Reverse Polish Naming" is blocking my understanding -- I can't tell
when a word I don't recognize is intended to be a definition versus
when it's simply unfamiliar to me. With all due respect, I'm pretty
sure that Reverse Polish Naming isn't a good idea; it's way too easy
to mess a file's semantics up by pre-defining one of the words it
intends to define. I'd far rather make definitions explicit.

-Wm
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.