Linked by Eugenia Loli on Tue 12th Nov 2002 20:39 UTC, submitted by bland est
General Development Forth has been a recognized programming language since the 1970's. ColorForth is a redesign of this classic language for the 21st century. It also draws upon a 20-year evolution of minimal instruction-set microprocessors. Now implemented on modern PCs, it runs stand-alone without an operating system. Applications are recompiled from source with a simple optimizing compiler.
Permalink for comment
To read all comments associated with this story, please click here.
Just my opinion, FWIW...
by Lee Nooks on Wed 13th Nov 2002 00:14 UTC

First, I'd like to say I very much like the concept of threaded things (words, subroutines etc.). It kind of remind me of those fractal concepts (and it brings a similar power).

Now, I've come to think that there are certain classes of problems:

- vector problems, for which the traditional (scalar?) processors are well suited; C is perfect here with its autoincrementing operators, assigments amidst expressions etc.

- complex structure problems, in which you have to deal with parameter passing, context switching etc. Stack machines excell here and stack-based languages (like Forth) simply rule.

Well, life is not perfect and one cannot deal with arrays all the time... so:

1) most processors gained POP/PUSH and even "exchange register with top-of-stack" opcodes, so that they can be more general purpose;

2) Charles Moore et al. also noticed the need for efficient array processing, so they incorporated an index register and XLAT-like (I think!) instructions. His last design (FP21, I believe) is truly impressive, as well as its design process -- OKAD. One of the most beautiful projects I've seen.

BTW, just to save y'all some time, read the excellent online book "Stack Computers", by Phillip Koopman.

If I may suggest, despite being just a curious guy, to Chuck Moore, Jeff and all the nice folks at :

1) why not make an FP21 card, just like that old CP/M card by Microsoft? Is it possible at all?

2) I'd like to play with ColorForth, and maybe I do so by getting an old computer to run it... for learning purposes, though, one running on DOS, or emulated DOS in Linux -- or even better, natively in Linux -- that would be nice! ;-)