CodeGym /Cours /JAVA 25 SELF /Compilateur et commentaires

Compilateur et commentaires

JAVA 25 SELF
Niveau 1, Leçon 5
Disponible

1. Compilateur Java

Au fait, vous entendrez plus d’une fois que l’atout indiscutable de Java par rapport aux autres langages — c’est sa multiplateforme. Qu’est-ce que c’est au juste et à quoi cela sert ? Commençons par le début.

Le fait est qu’un ordinateur ne sait exécuter que des instructions très simples.

Pour les chiens, il y a des ordres comme « Au pied », « Donne la patte », et en les entendant, le chien fait quelque chose d’important. Pour l’ordinateur, ces « ordres » sont des nombres : chaque instruction est encodée par un certain nombre (on parle de code machine).

Écrire un programme sous forme de nombres est très difficile, c’est pourquoi l’on a inventé les langages de programmation et les compilateurs. Un tel langage, d’un côté, est compréhensible par l’humain, et de l’autre — par le compilateur. Un compilateur est un programme spécial qui traduit le texte d’un programme, écrit dans un langage de programmation, en un ensemble de codes machine.

En général, un développeur écrit un programme dans un langage de programmation, puis lance le compilateur, qui, à partir des fichiers de code écrits par le développeur, produit un fichier unique en code machine — le programme final (compilé).

  • Programme en langage C++
  • Compilateur
  • Programme, composé de codes machine
Étapes de compilation pour le langage C++

Le programme obtenu peut être exécuté immédiatement sur l’ordinateur. L’inconvénient de cette approche est que le code du programme obtenu dépend fortement du processeur et du système d’exploitation. Un programme compilé pour Windows ne fonctionnera pas sur un téléphone Android.

Si vous avez écrit un programme pour Android, alors sur le système d’exploitation Windows il ne se lancera pas !

Mais Java adopte une approche bien plus innovante.

  • Programme en langage Java
  • Compilateur Java
  • Programme, composé de codes spéciaux (bytecode)
  • Java VM
  • Programme, composé de codes machine
Étapes de compilation pour le langage Java

Le compilateur Java ne compile pas toutes les classes en un seul programme en codes machine. À la place, il compile chaque classe séparément, et non en code machine mais en un code intermédiaire spécial (bytecode). La compilation en code machine s’effectue au lancement du programme.

Mais qui compile donc le programme en code machine au moment de son lancement ?

Pour cela, il existe un programme spécial appelé JVM (Java Virtual Machine) — Machine virtuelle Java. On la lance d’abord, puis — le programme constitué de bytecode. Et c’est la JVM qui, avant d’exécuter le programme nécessaire, le compile en code machine.

Si vous avez un processeur puissant qui prend en charge un ensemble plus large d’instructions machine, alors lors de la « deuxième compilation », un code machine sera généré en tenant compte de votre processeur et de votre OS en particulier. C’est justement pour cela que Java est parfois plus rapide que C++, qui est compilé directement en code machine et ne peut utiliser que les instructions processeur les plus courantes.

2. Erreurs typiques lors de la compilation

La vitesse et l’optimisation du code ne sont pas encore essentielles pour nous, mais ce qui est important, c’est que le compilateur vérifie votre programme à la recherche d’erreurs. Il vérifie la correction du code et ne le laissera pas aller plus loin s’il trouve ne serait-ce qu’une petite erreur.

Exemple d’erreur :

Vous essayez d’assigner un nombre à une variable qui ne peut stocker que du texte.

String userName = 42; // Oups ! On ne peut pas faire ça.

Le compilateur signalera immédiatement que les types ne correspondent pas : Cannot implicitly convert type 'int' to 'string'.

Autre exemple — une faute de frappe dans l’appel à println :

System.out.printline("Salut !"); // Erreur dans le nom de la méthode

Le compilateur dira : « Il n’existe pas une telle méthode — vérifiez la syntaxe ! »

Comment lire les erreurs ?

La plupart des compilateurs indiquent où se situe l’erreur dans le code, et proposent même parfois des pistes de correction. N’ayez pas peur des erreurs : chacune d’elles est un pas vers l’illumination… et vers la victoire contre votre « boss » intérieur.

3. Commentaires

Imaginez : vous écrivez un programme complexe. Tout fonctionne, vous êtes un génie ! Mais un mois plus tard, vous rouvrez ce code et… vous ne comprenez plus rien. Deux lignes de code ici, une variable étrange là. Dans votre tête : « Ça, c’est sûrement n’importe qui qui l’a écrit, mais pas moi ! ». C’est là que les commentaires sauvent la mise.

Les commentaires — c’est comme des notes dans la marge d’un manuel ou des post-it sur le frigo (« Bière. Ne pas boire. Pour demain ! »). Le compilateur les ignore, mais les humains — au contraire. Les commentaires permettent d’expliquer le sens du code, de marquer des détails importants et même de « désactiver » des morceaux de programme sans les supprimer.

Important : aucun compilateur ne lit vos commentaires, ils sont totalement ignorés !

Commentaires sur une ligne

En Java, il y a deux types de commentaires — sur une ligne et multilignes. Les commentaires sur une ligne commencent par deux barres obliques // et vont jusqu’à la fin de ligne. Tout ce qui se trouve après // est considéré comme un commentaire et est totalement ignoré par le compilateur.

Exemple :

System.out.println("Bonjour, le monde !"); 	// Cela affiche un message de bienvenue à l'écran

Ici, // Cela affiche un message de bienvenue à l'écran — c’est le commentaire. Si dans le code l’utilité d’une ligne n’est pas évidente, écrivez-le ainsi !

Encore un exemple :

int x = 42; 	// Âge du développeur

On peut aussi écrire des commentaires sur une ligne sur des lignes séparées :

// Initialisation de la variable contenant le nom d’utilisateur
String userName = "Vasya";

Un peu comme des didascalies dans un scénario : le commentaire explique le pourquoi et le comment.

Commentaires multilignes

Et si vous avez accumulé beaucoup d’informations ? Une vraie histoire ? Pour cela, il existe les commentaires multilignes, qui commencent par /* et se terminent par */. Tout ce qui se trouve entre ces symboles est ignoré par le compilateur, même si cela couvre plusieurs lignes.

Exemple :

/*
  Ici, nous affichons le nom de l’utilisateur à l’écran.
  S’il est absent, nous écrirons "Invité".
*/
System.out.println("Entrez votre nom:");

Ou ainsi :

int age = 18; /* Valeur initiale de l’âge
                 pour un nouvel utilisateur */

Attention : on ne peut pas imbriquer des commentaires multilignes entre eux. N’essayez pas d’être plus malin que le compilateur — cela ne fonctionnera pas.

Illustration :

Type Syntaxe Exemple
Sur une ligne
// commentaire
int x = 1; // explication
Multiligne
/* des trucs ici */
/* ici vous pouvez expliquer tout ce que vous voulez */

4. Exemples de la vraie vie

« Désactiver » une ligne de code :

Il arrive que vous ne vouliez pas exécuter temporairement un fragment de code. Les commentaires tombent alors à point nommé :

// System.out.println("Texte temporairement inutile");

La ligne est restée, mais le compilateur ne la « voit » pas.

Marques TODO et FIXME

Les développeurs sont humains eux aussi, et il faut parfois se rappeler à soi-même que le code n’est pas terminé, ou qu’il y a un bug ici. Pour cela, on écrit souvent :

// TODO: ajouter une vérification de saisie vide
// FIXME: cette fonction calcule mal la somme

Beaucoup d’éditeurs et d’IDE mettent même ces mots en évidence !

Les développeurs plaisantent

// Je ne suis pas responsable de ce code. On m’a forcé à l’écrire contre ma volonté.
// Cher moi_du_futur ! S’il te plaît, pardonne-moi pour ce code.
// Si je vois encore ça, je devrai commencer à porter une arme au travail.
// Si jamais cette condition se réalise, merci de me prévenir au tél. xxx-xxx-xxx contre récompense.
// Cher développeur :
//
// Quand tu auras fini « d’optimiser » cette sous-routine
// et que tu comprendras à quel point c’était une grosse erreur de faire ça,
// merci d’augmenter le compteur ci-dessous comme avertissement
// pour le prochain :
//
// number_of_hours_spent_here = 42
// Quand j’ai commencé à écrire ça, seuls Dieu et moi comprenions ce que je faisais. 
// Maintenant, il ne reste plus que Dieu
// Parfois, j’ai l’impression que le compilateur ignore tous mes commentaires
// Je dédie tout mon code, tout mon travail, à ma femme Darlene, qui 
// devra subvenir à mes besoins, à ceux de nos trois enfants et du chien, quand 
// ceci partira en production.

Oui, les commentaires peuvent être très drôles. Après tout, ils sont écrits par des personnes bien réelles.

1
Mission
JAVA 25 SELF, niveau 1, leçon 5
Bloqué
Notes personnelles 📝
Notes personnelles 📝
1
Mission
JAVA 25 SELF, niveau 1, leçon 5
Bloqué
Bloc de code pour les tests 🛠️
Bloc de code pour les tests 🛠️
1
Mission
JAVA 25 SELF, niveau 1, leçon 5
Bloqué
Correction des erreurs 🐛
Correction des erreurs 🐛
1
Étude/Quiz
Commandes et premier programme, niveau 1, leçon 5
Indisponible
Commandes et premier programme
Commandes et premier programme
Commentaires (1)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
ctsm63 niveau 1, Paris, France
20 juin 2026
Bonjour, pour la tache 3, Verify ne fonctionne jamais. La ligne : // System.out.println(number); Commentée ou pas bloque; Même la solution ne passe pas :-(