marc@noe.UUCP (Marc de Groot) (11/22/89)
Bill Bouma writes: > I stand by my claim that one can write forth in any language and > have it behave identically. Further, it doesn't matter how much > of it is written in the base language (asm, c, or whatever) and > how much is in forth. The so called "traditional implementation" > has nothing to do with the bahavior of forth at the top level! > This seems obvious, but I welcome PROOF to the contrary. I thought I was going to stay out of this one, but here goes: John's point is that the real power of Forth programming is when it is considered an open environment. Forth is not a reserved word set, although documents such as the Forth-83 standard might lead one to believe otherwise. Forth is an APPROACH TO PROGRAMMING. It has a number of characteristics, and I am only going to discuss one of them here. That characteristic is the concept that code will be built from tiny modules, and modules from modules, pyramiding upward. The Forth Approach abhors in-line code. Understand that this is not simply a programming convention: it is part of a philosophy of programming. This is why Forth programmers not only demand that high-level Forth be built of tiny modules, but they demand that the underlying implementation be built the same way. That way, the same techniques which make Forth so powerful at the high level can be applied at the system level. The real power of Forth is that the entire structure of the language from the threaded address interpreter up to the definition of QUIT (the command line interpreter loop) is extremely flexible. The system can be modified in simple ways to completely change the look and feel of the interpreter. Note that in the strictest sense, such a complete change does not mean you no longer have Forth -- Forth is not the look and feel. It is not the Standard set of words. It is an Approach. 'Nuff fer now. ^M -- Marc de Groot (KG6KF) These ARE my employer's opinions! Noe Systems, San Francisco UUCP: uunet!hoptoad!noe!marc Internet: marc@kg6kf.AMPR.ORG