example - new icon java
¿En qué idioma están escritos el compilador Java y JVM? (9)
¿En qué idiomas están escritos el compilador Java ( javac
), la máquina virtual (JVM) y el iniciador java
?
De los documentos de Java
El compilador está escrito en Java y el tiempo de ejecución está escrito en ANSI C
El primer compilador de Java fue desarrollado por Sun Microsystems y fue escrito en C usando algunas librerías de C ++. Hoy, 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 de 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 de Java recién compilado (escrito en Java) para compilar programas Java.
En principio, casi cualquier cosa, generalmente C
En realidad, Oracle JVM está escrito en C ++, no en C.
Eche un vistazo al código HotSpot JVM aquí: http://openjdk.java.net/groups/hotspot/
La mayoría de los sistemas operativos y las JVM están escritos en ISO C ++. Dudo que se use ANSI C, un lenguaje completamente diferente que es bastante anticuado hoy en día.
La redacción precisa de la pregunta es ligeramente engañosa: no es "la JVM" o "el compilador", ya que hay varios proveedores de JVM (jrockit es uno, IBM otra) y múltiples compiladores .
Sun JVM está escrito en
C
, aunque no es necesario; la JVM, ya que se ejecuta en su máquina, es un ejecutable dependiente de la plataforma y, por lo tanto, podría haberse escrito originalmente en cualquier idioma. Por ejemplo, la IBM JVM original se escribió en SmalltalkLas 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 han escrito enC
oC++
.Creo que el compilador de Java proporcionado por Sun también está escrito en Java. (Aunque, de nuevo, hay múltiples compiladores)
Supongamos que está hablando de Hotspot JVM, que es iirc proporcionado por Sun, está escrito en C ++. Para obtener más información sobre las diversas máquinas virtuales para Java, puede consultar este link . javac , como la mayoría de los compiladores de Java, está escrito en Java.
Jikes RVM , una JVM autohospedante utilizada extensamente para fines de investigación, está escrita en Java. No es la persona que ejecuta en sus escritorios, pero está muy arriba en mi lista de "ahora vamos a mostrar el poder general del idioma".
Este enlace debe responder su pregunta
Parece que el compilador ahora está escrito en Java, pero el tiempo de ejecución está escrito en ANSI C