IamRob wrote:
OOC, where else would either INTERPRETER or COMPILER be used outside of INTERPRET that would require them to have their own definitions?
Personally I like the all-in-one combination of all three in Fig Forth.
For INTERPRETER one use case might be if the user wanted to set up a vocabulary of words to be used in an application (eg, a menu system) that are all interpreted.
But, yes, factoring eases testing and debugging as you are building a wordset, which is why many advise that most definitions should be two to seven words long. The shorter the word, the easier it is to identify and test all edge cases before moving on to the word that contains it.
In that example, a peephole optimizer could be added to the COMPILER word, without having to test whether a regression was introduced for the interpreter state.