home .. forth .. colorforth mail list archive ..

[ColorForth] Let's talk philosophy


On Wed, 28 Nov 2001, Jack Johnson wrote:
> So, to generate some traffic in this mostly quiet mailing list I thought you 
> might be willing to share your ideas with the rest of us.  Why colorForth?  
> What brought you here?  Not only "Where do you want to go today?" but where 
> do you want to be tomorrow?  And how do you get there from here?

I'm hanging around here primarily because of my interest in things that
are simple.

I'm certainly not a FORTH sophisticate. I've used FORTH on a few
occasions, primarily in a system bring-up environment; for me, FORTH
provides a slick way to write scope loops and diagnostics that can be
used to make certain the system is working. My primary software
development is done in other languages, primarily C and assembly.
Before I came across FORTH, I tended to use things that looked a lot
like DEC's Micro-ODT for these purposes. However, Micro-ODT wasn't
extensible, and neither were my diagnostic systems built around it; if I
wanted a new test, I had to add it to the system source, recompile, and
blast a new ROM.

To some extent, I still use FORTH in that way. I'll do some interactive
puttering about to build a scope loop or a memory test, but if I come
across something that works really well or that I want to keep for
regression testing, I'll add it to the source code and recompile the
system. But I digress.

My first real work in FORTH was done to bring up an NVAX+ processor in an
Alpha system. Like the Alpha, the NVAX+ boots by loading its cache from
a serial ROM and then executing the ROM. I converted C-Forth (a FORTH-83
written in C) to VAX assembly language, making some odd choices along
the way (like using 16-bit relative offsets in the dictionary instead of
cell-sized absolute addresses) to keep it small. I wound up with a
system about 6KB in size. The NVAX+ has 8KB of cache, so I had a pretty
much full FORTH-83 which lived entirely in the processor's cache, while
still providing me a couple of K for building diagnostics. Since I
didn't need the main memory to run my diagnostics, I was able to find
some interesting disagreements between the processor and the memory
controller that would have been very difficult to find otherwise. I was
hooked.

My primary difficulty with FORTH-83 was that there were whole chunks of
the vocabulary that I did not understand; I had no clue what they did or
whether I needed them, but they were in the system so I didn't dare rip
them out in case something else depended on them. So I decided to build
my own FORTH from the ground up, so I would know what everything in the
system did and why it was there.

To me, that's what FORTH is all about. The FORTH that I use is _my_
FORTH. I know it like the back of my hand because I built it from
nothing. No one else will agree with the decisions I made in building my
FORTH; it is highly unlikely that anyone but me will use it. It is, and
will forever remain, mine.

I'm here primarily because I've found something interesting in most of
Jeff's rantings. I may not be a member of the Cult of Chuck, but that
doesn't mean Chuck's stuff isn't interesting. I may never use Color Forth
or Machine Forth, but there will be an idea or two that stick in my
head and become part of my toolbox.

Mark Slicker wrote:
> What I would like to see colorForth become is a highley collaberative
> environment. Currently most of us just publish code on our respective
> sites. This code needs to be self contained, where it might be the case
> some words are common or there exists common structure which can be
> factored.

I don't mean to be rude, but that's precisely the sort of thinking that
gave us the large ANS vocabulary. I'm not interested in other people's
code because it doesn't solve my problem. For me to have useful code, I
have to invent it so I know what it does and why it works that way.

> To facilate the collaberative process, a memory alocator might be
> needed, so you don't step on someone else's memory.

Memory allocator? You have a problem with Number_of_bytes ALLOT?

-- 
Roger Ivie
ivie@xxxxxxxxxx
------------------------

To Unsubscribe from this list, send mail to Mdaemon@xxxxxxxxxxxxxxxxxx with:
unsubscribe ColorForth
as the first and only line within the message body
Problems   -   List-Admin@xxxxxxxxxxxxxxxxxx
Main ColorForth site   -   http://www.colorforth.com