S‘il est un mot technique qui n’a pas eu de chance dans sa vie, c’est bien le terme compilateur bafoué depuis des années à tel point que rares doivent être les personnes qui seraient capables actuellement d’en donner une définition précise. Et bien non, la compile, ce n’est absolument pas la sélection musicale effectuée par le « didgé » pour animer en « laïve » une soirée dansante.
Un petit retour en arrière s’impose. Remontons aux tout début de la naissance de ces monstres que l’on nommait des ordinateurs. Ils se programmaient en binaire, une sorte d’enfer qui se résume à des zéros et des uns. Les ingénieurs logiciels se sont rapidement rendu compte qu’il serait « impossible » de continuer à bégayer binaire toute leur vie. Aussi, ils ont donc rapidement compris que ces grosses machines pourraient un jour lire du « bon français » compréhensibles par les humains, et transformer ce « texte » en des séries de « 0 » et de « 1 » assimilable par les circuits électroniques des grosses machines.
• On définit un langage très rigoureux que peut pratiquer l’humain facilement, (1)
• On loge dans une machine informatique binaire un programme qui translatera ce texte « humain » en binaire pur directement « électrisable » par le truc ordinatomicroprocesseur, puis la machine cible effectue le travail prévu par le programmeur. (2)
C’est précisément ce programme qui translate du texte en programme binaire pour un processeur cible qui se nomme un compilateur. Le résultat binaire qui par un moyen quelconque sera téléchargé sur le processeur cible se nomme une « compilation » … et ça n’a rien de musical ! Si c’est un ordinateur dont le processeur est totalement différent de celui de la machine cible qui loge le programme de translation, alors ce dernier se nomme un cros compilateur.
Par exemple, sur la Fig.2 l’IDE (Ensemble jaune, vert et violet.) est un système de développement de programme qui vise comme cible un microcontrôleur spécifique nommé ATmega328 logé sur une petite carte électronique connue sous le vocable Arduino. L’IDE comporte un petit traitement de texte intégré, un analyseur syntaxique pour vérifier que vous avez « parlé avec rigueur » et qu’il peut comprendre votre phraséologie. Puis, votre texte est alors compilé, et la suite de « 0 » et de « 1 » qui en résulte est téléversé par des intermédiaires électroniques dans l’ATmega328. Le microcontrôleur est alors « branché » automatiquement sur votre logiciel qu’il va exécuter avec une fidélité absolue « vos lignes de code ». C’est là que deux remarques s’imposent :
(1) : Complètement faux, ce n’est jamais facile de créer un programme SOURCE !
(2) : Le microcontrôleur effectuera avec rigueur les instructions du programme OBJET, toutefois, on constate très très très souvent que ce n’est pas du tout ce que prévoyait le programmeur !
La suite est ici.