¿En qué idioma están escritos el compilador de Java y la JVM?
¿En qué lenguajes están escritos el compilador de Java ( javac
), la máquina virtual (JVM) y el java
iniciador?
La redacción precisa de la pregunta es un poco engañosa: no es "la JVM" o "el compilador" , ya que existen varios proveedores de JVM (jrockit es uno, IBM otro) y varios compiladores .
Sun JVM está escrito en
C
, aunque no tiene por qué ser así: la JVM, tal como se ejecuta en su máquina, es un ejecutable que depende de la plataforma y, por lo tanto, podría haberse escrito originalmente en cualquier idioma. Por ejemplo, la IBM JVM original se escribió en Smalltalk.Las bibliotecas de Java (
java.lang
,java.util
etc., a menudo denominadas API de Java ) están escritas en Java, aunque los métodos marcados comonative
se habrán escrito enC
oC++
.Creo que el compilador de Java proporcionado por Sun también está escrito en Java. (Aunque nuevamente, existen varios compiladores)
El primer compilador de Java fue desarrollado por Sun Microsystems y escrito en C utilizando algunas bibliotecas de C++. Hoy en día, el compilador de Java está escrito en Java, mientras que el JRE está escrito en C.
Podemos imaginar cómo se escribió el compilador de Java en Java de esta manera:
El compilador de Java se escribe como un programa Java y luego se compila con el compilador de Java escrito en C (el primer compilador de Java). Por lo tanto, podemos utilizar el compilador Java recién compilado (escrito en Java) para compilar programas Java.