In which language are the Java compiler and JVM written?

Rahul Garg picture Rahul Garg · Aug 3, 2009 · Viewed 79.6k times · Source

In which languages are the Java compiler (javac), the virtual machine (JVM) and the java starter written?

Answer

oxbow_lakes picture oxbow_lakes · Aug 3, 2009

The precise phrasing of the question is slightly misleading: it is not "the JVM" or "the compiler" as there are multiple JVM vendors (jrockit is one, IBM another) and multiple compilers out there.

  • The Sun JVM is written in C, although this need not be the case - the JVM as it runs on your machine is a platform-dependent executable and hence could have been originally written in any language. For example, the original IBM JVM was written in Smalltalk

  • The Java libraries (java.lang, java.util etc, often referred to as the Java API) are themselves written in Java, although methods marked as native will have been written in C or C++.

  • I believe that the Java compiler provided by Sun is also written in Java. (Although again, there are multiple compilers out there)