svtalk part 2 ANS Forth
- To: MISC
- Subject: svtalk part 2 ANS Forth
- From: theFox@xxxxxxxxxxxxxxxxxxx (Jeff Fox)
- Date: Mon, 28 Jun 1999 18:56:14 -0500 (CDT)
Dear MISC mail list readers:
I have transcribed and posted section 2 of Chuck's talk
to SVFig on 5/22/99 in
http://www.UltraTechnology.com/cm52299.htm
here is a text copy:
All right let's go on to what people really want to hear about. This
was one of the most popular questions.
ANS FORTH ( >RED)
COMPLEXIFY
INTERNALS
WORD STATE HOLD
DOUBLES
2@ 2! ( >GRN)
CREDIBLE
FOCUS ( >BLK)
ANS Forth is an increasingly significant fact of life in the world
as we know it. It may not to be to my taste but I think it is to lots
of people's and I have no quarrel with it.
What is it that I don't like about ANS Forth?
Well Skip showed you a whole list of people working on ANS Forth and I
figure I don't need to be one more of them. So I can do something
different. That's really all I want to do, to try something no
one else has explored. But if I were to use ANS Forth, or try to
become compatible with it, ive got some objections
one s the whole concept of a "standards" document.
If you read the document
it gives you the impression that forth is more complicated than it is.
Or else it corrects my misinterpretation of how complicated forth is.
I like to quote Goerdel on this, it goes back to 1930. he proved
that a self contained formal system cannot be contained. horribly non-
sequator but, all right within a system you can't describe itself.
Within forth you can't describe Forth.
Well, our systems are not so esoteric as Goerdel's but I think you can
say
that within a system you cannot describe it simply. Now the standard
is not inside of Forth, it is outside of Forth. It is looking at it
and trying to describe it from a meta standpoint.
But even so when you have to explain what each term means accurately
like;
What is a cell? What is a character? And how does it fit in with all
these
other things? It gets ominously complex. Particularly so
since we all know what it means anyway. It is an
exercise in concise writing rather than an effort to convey meaning
and I object to that aspect of the standard and there is nothing that
you can do about it except that
I'm rewriting the standard to suite my taste and I hope it will be
much simpler and it will convey much of the same information
and some that was not previously available.
Another thing I don't like is that the internals are exposed.
There is far too much discussion of words that
an application programmer will never use. Particularly if that
application programmer doesn't decide to write their own interpreter.
I don't like people writing their own inpreters
because that means that as a user I have to learn a different
interpreter.
Forth has a perfectly good interpreter if you will just accept the
word order. So words like WORD STATE and HOLD and another dozen or two,
not that they shouldn't be in the standard, they shouldn't be in the
CORE wordset. They should be de-emphasized by the standard
or there should be another standard appropriate for
application programmers and this one is for systems programmers.
Ant then the double words. Get rid of all the double words. We
don't need to do 64 bit arithmetic.
Machines now are 32 bits or at least 20 bits and
in no case are double precision arithmetic relevant. And it
it complexifies things horribly. If you look at these arithmetic
operators:
UM*/MOD or something, I mean what in God's name does that do and
why should I care? And you shouldn't. It can be gone.
U/MOD is too complex. / certainly. */ yes.
MOD maybe, but that is about the end of it.
That includes words like 2OVER 2SWAP 2@ and 2! You oughtn't use such
words.
They make your stack more complicated. They are making presumptions
about the
layout of data in memory which you probably shouldn't be doing.
It is just too complicated.
If you want an extension wordset with all these double arithmetic
operators fine. If you want an extension wordset with all the internal
necessary to write your own interpreter fine, but not the CORE wordset.
The good things about the standard are: yes, it has creditability.
A lot of people will consider forth who wouldn't have considered it
without the ans standard. So a good thing.
Another thing, it focuses our attention as the Forth community on
issues. Instead of arguing about what Forth is you can argue
about what POSTPONE means. That at least is talking about
something that has some hope of resolution or coveys some
meaningful debate among the community. so I do like those
aspects of the standard. If the standard didn't exist I couldn't
be here bitching about it. (laughter)
(question from John Carpenter about 2@ and 2!)
Then you should call them D@ and D!, and that they should be
and extension. Not that these words are not useful or not nice,
but Standard? The standard is too much common practice and I
think it needs a little more pruning.
--
Jeff Fox Ultra Technology
www.UltraTechnology.com