¿En qué lenguaje están escritos el compilador Java y JVM?
En el que los lenguajes son el compilador Java (javac
), la máquina virtual (JVM) y el java
starter escrito?
9 answers
La formulación precisa de la pregunta es ligeramente engañosa: no es "la JVM" o "el compilador" ya que hay múltiples proveedores de JVM (jrockit es uno, IBM otro) y múltiples compiladores por ahí.
La JVM de Sun está escrita en
C
, aunque este no es necesariamente el caso: la JVM, ya que se ejecuta en su máquina, es un ejecutable dependiente de la plataforma y, por lo tanto, podría haber sido escrita originalmente en idioma. Por ejemplo, la IBM JVM original fue escrita en SmalltalkLas bibliotecas de Java(
java.lang
,java.util
etc, a menudo referido como la API de Java ) se escriben en Java, aunque los métodos marcados comonative
se han escrito enC
oC++
.-
Creo que el compilador Java proporcionado por Sun también está escrito en Java. (Aunque de nuevo, hay varios compiladores por ahí)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-03 12:26:32
Desde Java Docs
El compilador está escrito en Java y el tiempo de ejecución está escrito en ANSI C
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-06 22:26:12
El primer compilador Java fue desarrollado por Sun Microsystems y fue escrito en C usando 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 el compilador de Java fue escrito en Java de esta manera:
El compilador Java se escribe como un programa Java y luego se compila con el compilador Java escrito en C(el primer compilador Java). Así podemos usar el compilador Java recién compilado(escrito en Java) para compilar Java programa.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-06 02:34:19
En realidad, la JVM de Oracle está escrita en C++, no en C.
Echa un vistazo al código JVM de HotSpot aquí: http://openjdk.java.net/groups/hotspot /
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-29 22:36:40
Este enlace debe responder a su pregunta
Parece que el compilador ahora está escrito en Java, pero el tiempo de ejecución está escrito en ANSI C
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-03 10:34:39
En principio casi cualquier cosa, generalmente C
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-03 06:44:57
Jikes RVM, una JVM auto-alojada usada extensivamente para propósitos de investigación está escrita en Java. No es el que la gente ejecuta en sus escritorios, pero está muy arriba en mi lista de "ahora vamos a mostrar el poder general del lenguaje."
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-03 06:46:57
Supongamos que estamos hablando de la JVM Hotspot, que es iirc proporcionada por Sun, está escrita en C++. Para obtener más información sobre las diversas máquinas virtuales para Java, puede consultar este enlace. javac, como la mayoría de los compiladores Java, está escrito en Java.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-03 06:51:38
La mayoría de los sistemas operativos, 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.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-10-08 13:14:36