RE: [stack] Preliminary Notes...

wtanksley@bigfoot.com — 2000-05-05 22:18:40

From: Soren Renner [mailto:srenner@...]

>Yes. It has to have quotation. The question we should decide
>is whether it needs "define", or actually, where "define"
>should be. See my previous post.
>I am inclined to take "define" out of the interpreter, remove
>the dictionary, and code all ops as Oberon procedures.

It's kind of inconvenient to have an interactive system without the ability
to define things. However, if you're only designing a VM, that may be
sufficient. Speaking of VM, have you gotten a chance to read the OTA specs
(a Forthlike VM)?

>"It turns out, though, that 32 stack items is virtually
>infinite (in the words of a prominent Forth programmer). In
>general, it's easy to use more; however, in real use, it's very hard."

>So an array is a fine data structure for a stack. Also, since
>quotations might be quite long, the stack shouldn't be used to
>construct them.

Both statements sound reasonable to me, yes. Since quotations are built out
of boxes, I would expect you to use the stack only as a place to put two
things before CONSing them together.

>"I'd like to build a language which inherited its basic ideas,

>I second Mr. Tanksley's motion. (Cries of Hear, hear! from the
>bench would be appreciated.) Permit me to point out that
>garbage collection is trivial if our language is written in a
>typesafe, garbage collected language. Some may object that the
>ultimate goal must be a language written in itself and
>compiling only to machine code. The person I am thinking of
>hasn't joined the list yet, though.

I'm one of the people who would say that, actually. Both of these languages
which I proposed would have to be written in themselves (although it would
be permissable to write the second one in the first).

And GC is not trivial no matter what you do :-), and leaving it to some
other language doesn't let you take advantage of how your language behaves.

>Soren Renner

-Billy