Si le téléchargement ne démarre pas après 5 secondes, veuillez cliquer sur le lien "Télécharger"
Une fois achevée la production du logiciel, un choix doit être fait entre fournir le source ou le binaire pour la machine du client.
Cours JAVA : Le bases du langage Java,Cours gratuit, Cours informatique, Cours java, Formation java.
Généralement, une entreprise souhaite protéger le code source et distribuer le code binaire.
Le code binaire doit donc être portable sur des architectures différentes (processeur, système d’exploitation, etc.).
À l’instar du compilateur C, le compilateur C++ produit du code natif, i.e., qu’il produit un exécutable propre à l’environnement de travail ou le code source est compilé.
On doit donc créer les exécutables pour chaque type d’architecture potentielle des clients Cours JAVA : Le bases du langage Java,Cours gratuit, Cours informatique, Cours java, Formation java..
En Java, le code source n’est pas traduit directement dans le langage de l’ordinateur.
Il est d’abord traduit dans un langage appelé 'bytecode', langage d’une machine virtuelle (JVM – Java Virtual Machine) définie par Sun.
Le bytecode généré par le compilateur ne dépend pas de l’architecture de la machine où a été compilé le code source, c’est-à-dire que les bytecodes produits sur une machine pourront s’exécuter (au travers d’une machine virtuelle) sur des architectures différentes.
Le bytecode doit être exécuté par une Machine Virtuelle Java.
Cette JVM n’existe pas. Elle est simulée par un programme qui : Cours JAVA : Le bases du langage Java,Cours gratuit, Cours informatique, Cours java, Formation java.
1. lit les instructions (en bytecode) du programme .class
2. fait une passe de vérification (type opérande, taille de pile, flot données, variable bien initialisé,...) pour s’assurer qu’il n’y a aucune action dangereuse.
3. fait plusieurs passes d’optimisation du code
4. les traduit dans le langage natif du processeur de l’ordinateur
5. lance leur exécution.
Les vérifications effectuées sur le bytecode et la compilation du bytecode vers le langage natif du processeur, ralentissent l’exécution des classes Java.
Mais les techniques de compilation à la volée 'Just In Time (JIT)' ou 'Hotspot' réduisent ce problème : elles permettent de ne traduire qu’une seule fois en code natif les instructions qui sont (souvent pour Hotspot) exécutées.
Le langage Java est :
I « C-like » : Syntaxe familière aux programmeurs de C
I Orienté objet : Tout est objet, sauf les types primitifs (entiers, Cours JAVA : Le bases du langage Java,Cours gratuit, Cours informatique, Cours java, Formation java.
flottants, booléens, ...)
I Robuste : Typage fort, pas de pointeurs, etc.
I Code intermédiaire : Le compilateur ne produit que du bytecode indépendant de l’architecture de la machine où a été compilé le code source.
Le schéma simplifié d’un système informatique peut se résumer par la formule :
Système informatique = Structures de données + Traitements Le cycle de vie d’un système peut être décomposé en deux grandes phases :
I Une phase de production qui consiste à réaliser le logiciel.
I Une phase de maintenance qui consiste à corriger et à faire évoluer le logiciel.
Lors de la production du système (au sens industriel du terme), le concepteur a deux grandes options :
+ soit orienter sa conception sur les traitements.
+ soit orienter sa conception sur les données.
I Les premiers concepteurs de système informatique ont adopté cette approche : systèmes d’exp., gestionnaires de fenêtres, logiciels de gestion, logiciels de bureautique, logiciels de calcul scientifique, etc.
I De nombreux systèmes informatiques sont encore développés selon cette approche.
+ Systèmes ad-hoc, i.e., adaptés au problème de départ, mais dont la maintenance est difficile.
+ Les traitements sont généralement beaucoup moins stables que les données : changement de spécification, ajout de nouvelles fonctionnalités, etc.
+ Les structures de données sous-jacentes sont choisies en relation étroite avec les traitements à effectuer.
Cours JAVA : Le bases du langage Java,Cours gratuit, Cours informatique, Cours java, Formation java.