¿En qué idiomas está escrito el compilador Java (javac
), la máquina virtual (JVM) y el iniciador java
?¿En qué idioma están escritos el compilador Java y JVM?
Respuesta
La redacción precisa de la pregunta es un poco engañoso: no es "JVM" o "el compilador" ya que hay vendedores JVM múltiples (JRockit es uno, IBM otra) y múltiples compiladores por ahí.
La JVM de Sun es escrito en
C
, aunque esto no es necesariamente el caso - la JVM ya que se ejecuta en su máquina es una dependiente de la plataforma ejecutable y, por tanto, podría haber sido escrito originalmente en cualquier idioma. Por ejemplo, el original de IBM JVM fue escrito en SmalltalkLas bibliotecas de Java (
java.lang
,java.util
etc, a menudo referido como la API de Java) son a su vez escrito en Java, aunque los métodos marcados comonative
tendrá ha sido 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 por ahí)
Creo que quiere decir "java" el programa que usas para iniciar una JVM. –
En realidad, * one * library en Sun's JRE está escrito en NetRexx. (Es una de las bibliotecas matemáticas de precisión arbitraria, ya sea BigInteger, BigNum o BigDecimal. Olvidé cuál). En teoría, podría usar cualquier lenguaje para implementar JRE, siempre que pueda compilar a una representación que un programa Java pueda entender. –
Proporcione una referencia a Sun JVM escrito en C. –
En principio casi cualquier cosa, por lo general C
De Java Docs
El compilador está escrito en Java y el tiempo de ejecución está escrito en ANSI C
El primer compilador de Java desarrollado por Sun Microsystems fue escrito en C usando algunas bibliotecas de C++ http://en.wikipedia.org/wiki/Java_compiler –
Este es realmente un documento bastante viejo (> 10 años por el aspecto de las cosas). Por ejemplo, dice * "Los códigos de bytes de Java se traducen sobre la marcha a instrucciones nativas de la máquina (interpretadas) y no se almacenan en ningún lugar" * ¡lo cual no ha sido así durante aproximadamente 5 años! –
Bueno, ¿desde cuándo la documentación ha estado realmente actualizada, especialmente después de grandes cambios? :) – Esko
This link debe responder a su pregunta
Parece que el compilador ahora está escrito en Java, pero el tiempo de ejecución está escrito en A NSI C
Jikes RVM, una JVM autohospedada que se utiliza ampliamente con 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".
¿Las tortugas * están abajo *? ¿Tiene algún tipo de microkernel? Si es así, ¿en qué idioma está escrito? – Raedwald
Suponiendo que está hablando el Hotspot JVM, que se IIRC proporcionada 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.
La mayoría de 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.
Tienes que estar bromeando. La mayoría de las versiones de Linux están escritas en C. Una gran cantidad de Windows está escrita en assember, al igual que muchos sistemas operativos integrados.La mayoría de los escritores de sistemas operativos se mantendrán alejados de lenguajes como C++, donde elementos como constructores y destructores que no están presentes en el código fuente se insertan automáticamente por el compilador. –
linux está escrito en "C". hasta algún momento jrockit jvm fue escrito en "C". solo el hotspot jvm está escrito en "C++". – techcraver
En realidad, Oracle JVM está escrito en C++, no en C.
Tome un vistazo al código HotSpot JVM aquí: http://openjdk.java.net/groups/hotspot/
El primer compilador de 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 Java fue escrito en Java como esto:
El compilador de Java está escrito como un programa Java y luego compilado 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.
+1 para explicar cómo se puede escribir un compilador Java en Java :) –
- 1. qué funciones están incluidas en una JVM
- 2. ¿En qué idioma están escritas las funciones de PHP incorporadas?
- 3. Herramienta que me muestra qué archivos están escritos en Linux?
- 4. ¿En qué idioma está escrito el compilador de F #?
- 5. Compilador Lua a JVM?
- 6. Idioma para el compilador basado en LLVM
- 7. Proceso JVM y Java Linux
- 8. ¿Qué complementos de compilador scala están disponibles?
- 9. ¿Están todos los scripts escritos en lenguajes de script?
- 10. Usar dlls escritos en C# en el proyecto Java
- 11. ¿Hay algún juego de estilo CRobots que admita robots escritos en más de un idioma?
- 12. qué idioma usan google y otros
- 13. ¿Qué es el plegado constante en el compilador de Java?
- 14. ¿Por qué no puede el compilador/JVM simplemente hacer que el autoboxing "simplemente funcione"?
- 15. Lenguaje basado en JVM sin tiempo de ejecución de idioma
- 16. JVM/CLR Opciones de idioma compatibles con la fuente
- 17. ¿Cómo puede una implementación de un idioma en el mismo idioma ser más rápido que el idioma?
- 18. ¿Cómo se puede escribir el compilador de un idioma en ese idioma?
- 19. ¿Por qué la JVM no es independiente de la plataforma, dado que Java (el idioma) es independiente de la plataforma?
- 20. es el comando "java" de la JVM?
- 21. Aprendiendo sobre el bytecode de Java y la JVM
- 22. compilador Java en Runtime
- 23. ¿Qué compilador Java es utilizado por NetBeans?
- 24. ¿Por qué (casi) todos los juegos en línea escritos en ActionScript (Flash) no son Java?
- 25. Intérpretes escritos en C o C++ estándar
- 26. ¿Es OpenJDK JVM lo mismo que Oracle Java SE JVM?
- 27. Asesoramiento sobre qué idioma usar
- 28. ¿Qué hace el compilador de Java con múltiples límites genéricos?
- 29. ¿Es la JVM un compilador o un intérprete?
- 30. ¿Cuándo JVM de Java descomprime archivos jar?
trabajo en Java, así que quiero saber sobre el idioma ... :) –
Sí, pero no estoy involucrado (ni Rahul o él no haría la pregunta presumiblemente) al escribir compiladores o intérpretes de Java . Escribo código Java y es útil saber cómo funcionan determinados bits de él (para seleccionar clases) pero si está escrito en C, BCPL o COBOL, realmente no me importa. – paxdiablo
Es su perspectiva. Digamos que trabajó en alguna tecnología durante 20 años y el entrevistador le pregunta qué idioma está escrito o cómo funciona, entonces puede decir que no le importa, quiere decir que solo quiere escribir si no en el idioma que no quiero realmente entender el lenguaje. –