Addendum to "Conclusions from my OS/Language work" When I wrote the last article, I claimed that C is "better" than Forth, but I couldn't quite explain the reason. It all has to do with data types. Here's my line of reasoning: 1. Types allow simpler, more reliable & efficient code. 2. However, run-time type identification (RTTI) is slow. 3. Static typing (compile-time) doesn't work with Forth because it's impossible to determine arity (the number of parameters to a function). 4. There are two ways to determine arity: (a) only allow a fixed number of arguments to a function, or (b) use delimiters (typically parenthesis, as in C or Lisp). 5. You only need one stack if you can determine arity at compile time. That said, sometimes flexibility is paramount, and in those cases it'd be nice to have an interpreted language where types are determined from literals so you don't have to specify them explicitly. It could be closer to Forth, perhaps with /optional/ delimiters; Poplog comes to mind. Basic, ML, or K are also worth a look. C is a language you use instead of Assembler, when speed matters but it's more important to have compact code that's easier to read and write. And sometimes types just get in the way, and you want Forth! Tom Novelli May 1st, 2003