Not a bytecode translator
Answers to your questions: "see below, type and no."
It is just a program that takes some input and produces some output. The input is a Forth script. With the exception of some very large systems, it is rarely possible to create bytecode. jRuby, Clojure, Scala .. large systems like these produce bytecode.
However, your Forth interpreter is probably simple: a script interpreter that appears to be written in java. The input that it accepts is a kind of program, so you get a good double indirect execution. Forth runs through a bytecode interpreter running through jvm running on the CPU.
Now, if you ran it on a CPU emulator or wrote an interpreter in Fort, you can make it triple-indirect. (And in a way, that's already the case, because your Intel processor translates most of the x86 in the micro-ops code before executing them. :-)
In any case, the fact is that a program written in a fairly static language, for example java, may want to take some complicated user input and execute it, or, perhaps, the author of the program has things that are easier to execute in the fourth, and this allows him to write both in java and forward.
You have to think about all this until you understand it.
Digitaloss
source share