Forth [79] is a stack-oriented language. It was first used to control telescopes and process astronomical data. Since then, it has found a wide spectrum of uses, but is still often used in embedded systems. For example, the boot monitor of Sun workstations uses Forth to interact with the system administrator.
Forth interpreters are very fast. One reason for this is that Forth is relatively low-level and gives the programmer many opportunities to optimize stack operations. Other reasons are the innovative interpretation techniques that first appeared in Forth. The first Forth system employed indirect threading as later described in [21]. Forth allows a user to define new words that are dynamically integrated into the interpreter. New words can be accessed and executed as fast as the builtin words. Therefore, it is very easy and efficient to customize the interpreter to specific tasks at hand.
We considered to make Forth the language that is used to interpret code inside the kernel. We decided against it, because many features of Forth are geared at interactive use and I/O. Stripping these from Forth would leave a language very similar to R-code. Since we want to optimize R-code for fastest possible interpretation and a well suited target language for a C compiler, we decided to start from scratch. R-code has to evolve and, in its final form, may not look like Forth at all, even if we had started there.