For that matter, even C compilers often translate the code to an intermediate langauge before outputting the executable.
Yes, but for completely different reasons. C compilers do
that to avoid the N*M problem, that is, having to compile N
languages on M platforms. Without an intermediate language,
one would have to write N*M compilers - with an intermediate
language, one only needs to write N + M compilers.
It doesn't interpret the intermediate language - by the time
runtime starts, the intermediate language is gone.
Abigail