Dans quelle langue le compilateur Java et la JVM sont-ils écrits?


Dans quelles langues se trouve le compilateur Java (javac), la machine virtuelle (JVM) et le démarreur java écrit?

Author: user2418306, 2009-08-03

9 answers

La formulation précise de la question est légèrement trompeuse: ce n'est pas "la JVM" ou "le compilateur"car il existe plusieurs fournisseurs de JVM (jrockit en est un, IBM en est un autre) et plusieurs compilateurs là-bas.

  • La JVM Sun est écrite dans C, bien que cela ne soit pas nécessairement le cas - la JVM telle qu'elle s'exécute sur votre machine est un exécutabledépendant de la plate-forme et donc pourrait avoir été écrit à l'origine dans n'importe quel langue. Par exemple, la JVM IBM originale a été écrite dans Smalltalk

  • Les bibliothèques Java (java.lang, java.util etc, souvent désigné comme l'API Java) sont eux-mêmes écrits en Java, bien que les méthodes marqué comme native sera écrit dans C ou C++.

  • Je crois que le compilateur Java fourni par Sun est également écrit en Java. (Bien que encore une fois, il existe plusieurs compilateurs)

 149
Author: oxbow_lakes, 2009-08-03 12:26:32

À Partir De Java Docs

Le compilateur est écrit en Java et le runtime est écrit en ANSI C

 58
Author: Sev, 2016-03-06 22:26:12

Le tout premier compilateur Java a été développé par Sun Microsystems et a été écrit en C en utilisant certaines bibliothèques de C++. Aujourd'hui, le compilateur Java est écrit en Java, tandis que le JRE est écrit en C.

Nous pouvons imaginer comment le compilateur Java a été écrit en Java comme ceci:

Le compilateur Java est écrit en tant que programme Java, puis compilé avec le compilateur Java écrit en C(le premier compilateur Java). Ainsi, nous pouvons utiliser le compilateur Java nouvellement compilé(écrit en Java) pour compiler Java programme.

 54
Author: shrinath, 2017-10-06 02:34:19

En fait, la JVM Oracle est écrite en C++, pas en C.

Jetez un oeil au code JVM HotSpot ici: http://openjdk.java.net/groups/hotspot/

 14
Author: UrbenLegend, 2012-02-29 22:36:40

Ce lien devrait répondre à votre question

Il semble que le compilateur soit maintenant écrit en Java, mais le runtime est écrit en ANSI C

 9
Author: micmoo, 2015-04-03 10:34:39

En principe presque tout, généralement C

 8
Author: djna, 2009-08-03 06:44:57

Jikes RVM , une JVM auto-hébergée largement utilisée à des fins de recherche est écrite en Java. Ce n'est pas celui que les gens courent sur leurs ordinateurs de bureau, mais c'est bien là-haut sur ma liste de "maintenant, montrons la puissance générale de la langue."

 3
Author: Sam Harwell, 2009-08-03 06:46:57

Supposons que vous parliez de la JVM Hotspot, qui est iirc fourni par Sun, elle est écrite en C++. Pour plus d'informations sur les différentes machines virtuelles pour Java, vous pouvez consulter ce lien . javac, comme la plupart des compilateurs Java, est écrit en Java.

 3
Author: Michael Foukarakis, 2009-08-03 06:51:38

La plupart des systèmes d'exploitation, JVM sont écrits en ISO C++. Je doute que ANSI C soit utilisé, un langage entièrement différent qui est assez désuet de nos jours.

 -2
Author: Mickey, 2010-10-08 13:14:36