Whatever Happened To...?
Whatever happened to Chuck Moore? You know who I'm talking about -- the "father of FORTH".
Chuck developed the first complete, implementation of Forth in 1971 for the 11-meter radio telescope operated by the National Radio Astronomy Observatory (NRAO). This system ran on two minicomputers -- a 16-KB DDP-116 and a 32-KB H316 -- connected by a serial link. He subsequently ported Forth to dozens of computer architectures.
From the outset, Chuck's guiding principle -- his "Basic Principle" -- in terms of design (hardware and software) has always been "Keep it simple!"
As the number of capabilities you add to a program increases, the complexity of the program increases exponentially. The problem of maintaining compatibility among these capabilities, to say nothing of some sort of internal consistency in the program, can easily get out of hand. You can avoid this if you apply the Basic Principle. You may be acquainted with an operating system that ignored the Basic Principle.
It is very hard to apply. All the pressures, internal and external, conspire to add features to your program. After all, it only takes a half-dozen instructions, so why not? The only opposing pressure is the Basic Principle, and if you ignore it, there is no opposing pressure.
In Chuck's view, the main enemy of simplicity is programmers who speculate on future needs and provide for them. So he added a corollary to the Basic Principle: "Do not speculate!"
Do not put code in your program that might be used. Do not leave hooks on which you can hang extensions. The things you might want to do are infinite; that means that each has 0 probability of realization. If you need an extension later, you can code it later -- and probably do a better job than if you did it now. And if someone else adds the extension, will he notice the hooks you left? Will you document this aspect of your program?
Although Chuck was a co-founder of Forth, Inc. (a software company which is still the largest Forth vendor), Chuck over time shifted his focus from software to CPU design (assuming, of course, we can differentiate between the two), launching companies such as Novix, Computer Cowboys (a consulting firm where he developed the Sh-Boom processor), and iTv Corp.
So what's Chuck been up to recently? Well, a couple of years ago he co-founded and became CTO of IntellaSys , where he just announced a new 40-core processor -- the SEAforth 40C18 -- that's designed for embedded wireless, portable, and distributed data processing applications. The SEAforth 40C18 is an array of 40 fully functional CPUs operating asynchronously, each of the cores a complete computer, with its own ROM, RAM, and interprocessor communication. Together they can deliver up to 26 billion operations per second.
According to Chuck, "the beauty of this single-chip 40 CPU processing solution is that it is completely programmable -- meaning if a spec changes, it is a code issue, not a silicon turn. With 40 cores operating independently on the chip, designers can dedicate groups of them to handle specific tasks. For example, some could be assigned compute-intensive Fast Fourier Transforms (FFT) while others handle wireless connectivity, standard I/O interfaces or drive external memory."
The processor will be offered with VentureForth , a Forth-based (what, you expected Java?) IDE that includes interactive programming, testing, and debugging facilities. VentureForth includes compilers for both Windows and Linux and a simulator for debugging, and contains low-level primitives as well as the high-level tools necessary to map programs across the array of cores in a SEAforth processor.
For more on the 40-core SEAforth processor and how Forth fits into the picture, see Stephen Pelc's article Extreme FORTH.