Java defines a conceptual machine, the JVM—Java Virtual Machine. Java programs are almost always are interpreted by the JVM. This is exactly simulating a Java machine. Few real Java machines have been built. The JVM is rather slower than typical real machines but there are some advantages. Modern JVMs spend a bit of their time considering whether portions of the program could be advantageously translated into the machine instructions of the real hardware. Often this translation is done whereafter it is difficult to say whether the program was really run or entirely interpreted. This technology, the JIT (Just In Time compiler), further confounds the distinction between machine and process. The process remains intact while the JVM steps out of the scene.