Langage machine, les codes numériques des opérations qu’un ordinateur particulier peut exécuter directement. Les codes sont des chaînes de 0 et de 1, ou des chiffres binaires (« bits »), qui sont fréquemment convertis à la fois de et en hexadécimal (base 16) pour être visualisés et modifiés par l’homme. Les instructions en langage machine utilisent généralement certains bits pour représenter des opérations, telles que l’addition, et d’autres pour représenter les opérandes, ou peut-être l’emplacement de l’instruction suivante. Le langage machine est difficile à lire et à écrire, car il ne ressemble pas à la notation mathématique conventionnelle ou au langage humain, et ses codes varient d’un ordinateur à l’autre.
Le langage d’assemblage est un niveau au-dessus du langage machine. Il utilise des codes mnémoniques courts pour les instructions et permet au programmeur d’introduire des noms pour les blocs de mémoire qui contiennent des données. On peut ainsi écrire « add pay, total » au lieu de « 0110101100101000 » pour une instruction qui additionne deux nombres.
Le langage d’assemblage est conçu pour être facilement traduit en langage machine. Bien que les blocs de données puissent être désignés par leur nom plutôt que par leur adresse machine, le langage d’assemblage ne fournit pas de moyens plus sophistiqués pour organiser des informations complexes. Comme le langage machine, le langage d’assemblage nécessite une connaissance détaillée d’une architecture interne particulière de l’ordinateur. Il est utile lorsque ces détails sont importants, comme pour programmer un ordinateur afin qu’il interagisse avec des périphériques d’entrée/sortie (imprimantes, scanners, périphériques de stockage, etc.).