The infamous _(Java) Virtual Machine (JVM) is a *(VM) introduced by Sun as a standard compact (so they say) low-level representation for programs written in Java. It sucks in that it is both too low-level and too high-level to prevent efficient analysis, front-end and back-end compilation, plus it's too adapted to Java.

A very bad choice for Java, even more so for other languages. It's kind of the latest fad, but stay away from it if you can.

<a href="http://www.kaffe.org">Kaffe</a> is a free implementation of the JVM by the GNU project. This includes both an interpreter and JIT compiler for various systems.

Here's an index of <a href="http://grunge.cs.tu-berlin.de/~tolk/vmlanguages.html">Programming Languages for the Java Virtual Machine</a>
