Code machine

Définition, exemples et bonnes pratiques

À retenir

  • C'est le seul langage que le processeur comprend directement.
  • Il est spécifique à chaque architecture (un code pour Intel x86 ne fonctionnera pas sur un processeur ARM d'iPhone).
  • Il est composé d'instructions élémentaires (additionner, déplacer une donnée, comparer).

Le code machine est le langage "natif" du processeur de l'ordinateur. Contrairement aux langages de programmation que les humains peuvent lire (comme le Python ou le C), il se compose uniquement de suites de 0 et de 1 que le matériel exécute instantanément sans avoir besoin de traduction supplémentaire.

Étymologie

Il s'agit d'un calque de l'anglais machine code. Aux débuts de l'informatique, les programmeurs devaient saisir manuellement ces suites numériques avant que n'apparaissent des langages plus simples à manipuler.

Exemples d'usage

  • Une séquence binaire telle que 10110000 01100001 qui ordonne au processeur de stocker une valeur précise.
  • La représentation hexadécimale (plus courte) utilisée par les experts pour analyser le contenu d'un fichier exécutable (ex: B8 01 00).

Cas d'usage

Le code machine intervient à l'étape finale de toute création logicielle : c'est le résultat produit par un compilateur à partir de votre code source pour que l'ordinateur puisse l'exécuter. On le retrouve au cœur des systèmes d'exploitation, des pilotes de périphériques et des micro-logiciels (firmware).

Bonnes pratiques

De nos jours, on ne développe presque jamais directement en code machine. Il est conseillé de passer par l'Assembleur si l'on souhaite un contrôle total du matériel, ou par des langages de haut niveau pour la majorité des projets. Le code machine est principalement consulté lors de phases de débogage très poussées ou en cybersécurité pour analyser des virus.

Synonymes

langage machine binaire code objet

Antonymes

langage de haut niveau code source

Conseil

Si vous voulez comprendre comment le code machine fonctionne sans devenir fou avec les 0 et les 1, intéressez-vous à l'Assembleur. C'est le langage qui se rapproche le plus du code machine tout en utilisant des mots-clés courts (comme MOV, ADD, PUSH) au lieu de nombres.

Questions fréquentes

Peut-on lire le code machine ?

Pour un humain, c'est presque impossible car cela ressemble à une suite infinie de chiffres. On utilise des outils nommés 'désassembleurs' pour le traduire en un langage un peu plus lisible.

Le code machine est-il le même pour tous les ordinateurs ?

Non, il dépend du jeu d'instructions (ISA) du processeur. C'est pourquoi un logiciel Windows classique ne tourne pas nativement sur un smartphone sans adaptation.