Re: Fwd: [stack] Concatenative Research
2011-01-31 20:08:26 GMT
Justin <zallambo <at> yahoo.com> wrote:
>John Carter <john.carter <at> ...> wrote:
>> What may be interesting and useful would be to return to typed variables
>> (named values variety) and something like a SQL "natural join".
> I don't know what you mean. Could you give an example? (I don't have a
> good mental model of databases.)
I'm not certain, but I assumed he was implying that the compiler would
somehow just figure things out. It's hand-waving, but he admits it
hasn't been done yet.
> I am aware of three methods of passing data around:
> 1. stack manipulation
> 2. variable references (the stateful kind)
> 3. implicit state (think of the flags register in assembly)
> We can probably agree that (3) is usually a bad idea. Are there other methods? What else could a concatenative language do?
One can also pass data around in data structures; explicit ones, as
with Joy's lists; semi-implicit ones, as in Joy's 'dip' combinator;
and implicit ones, as in Forth's global dictionary. XY (one of Apter's
languages) adds a queue structure to represent source evaluation. It's
conceivable that some other structure could replace the stack, rather
than simply augmenting it.
A "language" which did nothing but join strings into one big string
would be concatenative in syntax and compositional in semantics,
although very boring in behavior -- and would replace the stack with a