Compilateur Java
Un compilateur Java est un compilateur pour le langage de programmation Java[Quoi ?]. Le format de sortie le plus courant pour un compilateur Java est des fichiers .class contenant le bytecode Java plate-forme agnostique. Il existe aussi des compilateurs produisant du code machine optimisé pour une combinaison matériel/système d'exploitation particulière.
La machine virtuelle Java (JVM) charge les fichiers .class et interprètes le bytecode ou le compile à la volée et peut également l'optimiser en utilisant la compilation dynamique.
Exemples de compilateurs java
- javac, le compilateur Java de Sun Microsystems, livré avec le JDK.
- ECJ (Eclipse Compiler for Java), le compilateur Java intégré à l'environnement de développement intégré Eclipse.
- GCJ (Gnu Compiler for Java), inclus dans la GNU Compiler Collection (GCC), qui génère du code machine grâce au back-end de GCC.
- Jikes, un projet open source de compilateur Java créé par IBM.
Autres
- JavaCC, un compilateur de compilateurs pour Java.
Historique et perspectives
Le premier compilateur java a été celui de Sun, diffusé avec le langage Java.
Fonctionnement et théorie
Les compilateurs Java sont en général distribués en tant qu'outils en ligne de commande, même si des IDE existent. Il existe également une Java Compiler API (JSR 199).
Les compilateurs Java ont la particularité de compiler le langage Java en un bytecode Java.
Apports et limitations
Apports
Le compilateur Java offre de l'interopérabilité et de la portabilité, tant au niveau du code source, du code binaire produit que de son invocation.
Certains compilateurs Java sont d'usage gratuit. D'autres sont open source.
Limitations
Standardisation et normalisation
Les compilateurs Java doivent respecter les spécifications publiées par Sun microsystems. Il s'agit des spécifications Java Language Specification et The Java Virtual Machine Specification[1].
En plus de son travail de compilation, le compilateur peut traiter les annotations, en accord avec la JSR 269: Pluggable Annotation Processing API[2].
Usages et applications
Aspects économiques et sociaux
La machine virtuelle Java est présente sur pratiquement tous les ordinateurs. Java représente une grande part des développements réalisés surtout dans les nouvelles technologies. Quasiment toutes les formations en programmation proposent des cours sur Java. Le stock de développeur Java est donc conséquent.
Java est gratuit, ce qui est à l’origine de sa large diffusion. Les universités n’ont donc pas hésités à proposer des cours Java : ce qui est un élément stratégique pour la diffusion d’un nouveau langage de programmation.
Java est un langage objet permettant de mettre à place des solutions dans les architectures informatiques les plus innovantes. Attention toute fois à bien maitriser la programmation objet et les particularités de ce langage. Les activités de conseils représentent une économie importante.
Java est déjà présent de manière conséquente dans l'économie informatique et risque de le devenir de plus en plus en particulier au niveau des services distants : traitement de texte en ligne, stockage de fichiers en ligne,…