Programmer en Java

publicité
HUBBARD-chaps Page 2 Mardi, 27. juin 2006 12:08 12
2
Débuter
LE LANGAGE DE PROGRAMMATION JAVA
Le langage de programmation Java a été développé par James Gosling
chez Sun Microsystems en 1991. Son nom provient d’un terme d’argot
désignant le café. Lorsque le World Wide Web a fait son apparition sur
internet en 1993, ce langage s’est vu apporter quelques améliorations
afin de s’adapter à la programmation sur le web. Depuis lors, il est
devenu l’un des langages les plus populaires, notamment pour la programmation réseau.
Afin de mieux vous rendre compte de ce qui a pu contribuer au succès
de Java, considérez un réseau de plusieurs ordinateurs différents,
comme ceci :
Station de travail IBM
AIX
Motorola PowerPC
PC Dell
Windows NT
Intel Pentium II
PC Unicent
Linux
AMD K6
Réseau
PC portatif Toshiba
Windows
Intel Pentium Pro
Station de travail SGI
IRIX
MIPS R10000
PC réseau Sony
Windows 2000
Intel Celeron
Ces ordinateurs peuvent être réunis dans une même pièce, au sein d’un
réseau local ou dispersés à travers le monde et reliés via internet. Ce
qu’il faut retenir, c’est qu’ils tournent sur différents systèmes d’exploitation et utilisent des processeurs différents. Supposons que vous souhaitiez écrire un programme sur la station de travail IBM qui puisse
tourner sur chacun de ces six ordinateurs.
Avant qu’un programme informatique puisse être exécuté, il doit être
converti dans le langage machine du processeur de l’ordinateur sur
lequel il doit tourner. Dans le cas des langages de programmation
comme le Pascal ou le C++, cette conversion est effectuée par un
HUBBARD-chaps Page 3 Mardi, 27. juin 2006 12:08 12
Le langage de programmation JAVA
3
compilateur, qui produit une version langage machine du programme
appelée image exécutable. Malheureusement, les processeurs possèdent chacun leur propre langage machine. Ainsi, l’image exécutable
produite sur la station de travail IBM ne pourra tourner sur aucun des
autres ordinateurs du réseau présenté précédemment. Pour qu’un programme puisse tourner sur chacun de ces ordinateurs, il faudrait que le
programmeur le compile séparément sur chacune de ces machines.
Pour résoudre ce problème, Java propose pour chaque système informatique non seulement un compilateur, mais également un système
logiciel appelé Java Virtual Machine (JVM ou machine virtuelle Java).
Le compilateur Java, appelé javac, convertit le code source Java en un
langage de niveau intermédiaire, appelé bytecodes. Les bytecodes,
comme le code source lui-même, sont indépendants du type d’ordinateur. Tous les ordinateurs utilisent le même fichier bytecode. Lorsqu’un
ordinateur souhaite exécuter un programme Java écrit sur un autre
ordinateur, il télécharge le fichier bytecode du programme et le transmet à sa propre JVM. La JVM traduit les bytecodes dans le langage
machine de son propre système et exécute la version convertie.
Le schéma ci-après présente à nouveau le réseau de l’exemple précédent. Trois fichiers apparaissent cette fois sur l’ordinateur IBM : un
fichier de code source Java appelé Hi.java, le compilateur java et le
fichier bytecode Hi.class. Le compilateur a produit ce fichier
bytecode lorsque le programmeur a exécuté la commande javac
Hi.class sur l’ordinateur IBM. Par la suite, un utilisateur de l’ordinateur Sony (à droite) a cliqué sur une page web qui contenait des instructions pour exécuter Hi.class. Automatiquement, la machine Sony
a téléchargé le bytecode Hi.class et l’a fait tourner sur sa propre JVM
locale. La JVM de l’ordinateur Sony sait comment traduire le
bytecode dans le langage machine du processeur afin que ce dernier
puisse l’exécuter. Tout le travail préalablement effectué sur l’ordinateur IBM est entièrement indépendant de celui réalisé sur l’ordinateur
Sony. En fait, le fichier Hi.class aurait pu avoir été produit bien avant
que l’ordinateur Sony ou son processeur n’aient même été inventés.
La plupart des navigateurs web (Netscape Communicator, Internet
Explorer) intègrent JVM. Lorsque vous chargez une page web qui
contient des instructions pour exécuter un programme Java, le navigateur télécharge automatiquement le bytecode et lance la JVM.
Téléchargement