For fully compiled languages like C and Fortran, the binary codes
are executed directly by the target machine. Java stops the
translation at the byte code level. The Java virtual machine, which
is at the assembly language level, interprets the byte codes
(hardware implementations of the JVM also exist, in which Java
byte codes are executed directly.)