Definition: A Virtual Machine is a like a computer running within a computer. Although slightly slower than running pure Machine Code, this offers greater portability as well as robustness and reliability.
Java was the first mainstream language to use a Virtual Machine - known as the JVM or Java Virtual Machine. Java Compilers generate ByteCode which runs on the JVM.
The .NET framework is a Virtual Machine and all .NET Compilers generate CIL code.

