|
Forth sometimes has compatibility problems. Each Forth compiler has its own special abilities, and when you use those special abilities your code is not portable to any Forth compiler that fails to provide the same abilities using the same syntax. No one Forth compiler is dominant. One advantage of tokenized systems is that the compatibility issues become clearly defined. In each case there is a list of 'primitives', routines that are represented by tokens, which each Forth system is expected to treat in a standard way. If these are handled correctly then all the code that depends on them will also be handled correctly. Also, Forth includes a collection of compiler commands that are part of the language, which tend to have more incompatibilities than the direct commands, and byte-code systems can avoid many of those problems. |