LLL
Raul Miller
rdr@legislate.com
Sat, 24 Jun 95 14:22 GMT
Ok. So if no one has any objection,
let's start with ANS FORTH as the basis for our LLL.
*BUT*, do not use FORTH-specific meta-words and I/O words,
and instead study how we could achieve something more compatible
with extending the LLL toward a HLL.
What's a meta-word? CREATE DOES> S" ABORT" .( IF , ?
For instance, let's remove the builtin word parser of FORTH,
and allow people to use any syntactic analyser instead;
let's allow people to define *contexts* instead of the vocabulary
hack.
removing the builtin word parser has strong implications on the
resulting language:
(1) it defines which words may be part of the language.
(2) it will affect the semantics of the words of the language.
Replacing the vocabulary hack with some other structure is a good
idea, but is inadequate in and of itself. You need to define the
semantics of contexts before you can use them.
Explicitly buffered i/o is nice for a LLL. But the meta-words
should use more abstract, seamless, i/o instead. I hate it when all
functions must fit a block, etc.
Um... perhaps you're thinking of something like Will Baden's ThisForth
(which uses abstract io of the host operating system)? But, then,
wouldn't you need an operating system to provide these semantics? At
this point, you're not really talking about a LLL any more.
Actually, all that I've begun to do in the few sources I wrote
for the LLL. Let's make it official.
Any objection ?
Not so much an objection, but... I wouldn't be able to proceed on
implementation at this point. I could implement integer arithmetic
and >>maybe<< some memory manipulation, but I wouldn't know what to do
about things like characters.
[ANS forth is, in and of itself, utterly useless -- it's practically
impossible to write a useful in ANS forth without introducing
environmental dependencies. For example, any program which requires a
stack depth of more than about 6 elements has an environmental
dependency. The art of ANS forth implementation is to choose a good
set of environmental dependencies...]
Without an I/O model, I don't know how to proceed from this point.
Perhaps we should declare IP (internet protocol) as our fundamental
interface? ?? [That would be rather complicated to deal with, but
does at least have the advantage of being concrete yet flexible.]
--
Raul D. Miller