What are the differences between LLVM and java bytecode?

user34537 picture user34537 · Jan 18, 2009 · Viewed 21.8k times · Source

I dont understand the difference between LLVM and the java (bytecode), what are they?

-edit- by 'what are they' i mean the differences between LLVM and java (bytecode) not what are LLVM and java.

Answer

nimrodm picture nimrodm · Jan 18, 2009

Assuming you mean JVM rather than Java:

The LLVM is a low level register-based virtual machine. It is designed to abstract the underlying hardware and draw a clean line between a compiler back-end (machine code generation) and front-end (parsing, etc.).

The JVM is a much higher level stack-based virtual machine. The JVM provides garbage collection, has the notion of objects and virtual method calls and more. Thus, the JVM provides much higher level infrastructure for language interoperability (much like Microsoft's CLR).

(It is possible to build these abstractions over LLVM just as it is possible to build them on top of C.)