--- In
concatenative@egroups.com, peter_easthope@g... wrote:
> Sorren, why are you creating a new language and
> writing the compiler? If you have explained already
> perhaps you can just point me back to the message.
>
> Have any of you folks used J? The concatination here
> is reminiscent of J.
>
> wtanksley@b... said,
> wt> the syntax I used depended on strings, while
> yours depends on "symbols".
>
> I know what a string is. What is a "symbol"?
>
> Brent Kirby mentioned,
> bk> Count upward, beginning at 0, skipping multiples of five
>
> Sorren replied,
> sr> 0 [dup 5 % 0 = [dup puti] [] if 1 +] spin
Well, I DIDN'T write that last line. It was either iepos or tanksley.
Probably the bit about writing a new language and compiler isn't
correctly aimed at me either. However, it might be, because I am
implementing Joy in Oberon. So I will answer: "because I am not
intelligent enough to understand how a virtual machine works without
writing one."
I think that what I wrote yesterday is complete. That is, it will need
some operations and combinators besides dup and i, and a scanner so it
can parse input into programs, and more literal types. Characters and
strings should be easy. Joy also has a set type. Oberon has a set type
too, though I have never used it. Probably one will map to the other.
There will need to be a dictionary mapping names of ops to ops, for
the scanner at least.
Here is an idea: multiple Joy threads that communicate through a
global store of variables that can be bound only once, like Mozart Oz.
It would mean adding "variables", but only global ones, so each VM
(thread) would be no heavier than it would be in pure Joy.
sr
"Hitting today's nail with the hammer of tomorrow. On the head.
egrollard.com"