Les programmes que les ordinateurs peuvent directement reconnaître et exécuter sont des programmes en langage machine. Le langage machine est un langage informatique de bas niveau exécuté directement par le matériel informatique. Il utilise des codes binaires (0 et 1) pour représenter les instructions et les données, y compris les opcodes spécifiques, les registres, les adresses mémoire, etc. Les programmes en langage machine sont exécutés directement sur l'unité centrale de traitement (CPU) de l'ordinateur.
Cependant, écrire et comprendre des programmes en langage machine est difficile et fastidieux pour la plupart des gens. Par conséquent, le développement de langages de haut niveau a permis aux programmeurs d’écrire des programmes en utilisant un code plus lisible par l’homme. Les langages de haut niveau (tels que C, Java, Python, etc.) nécessitent un compilateur ou un interpréteur pour convertir le code source en code de langage machine afin que l'ordinateur puisse l'exécuter directement. Ainsi, d’un point de vue pratique, la plupart des programmes sont écrits dans un langage de haut niveau et convertis via un processus de compilation ou d’interprétation en un programme en langage machine que l’ordinateur peut exécuter.