Les compilateurs sont une partie essentielle de la boîte à outils d'un programmeur informatique. Un compilateur transforme un fichier texte contenant du code en un programme qui peut être exécuté.
Une idée fausse courante est que les ordinateurs comprennent le code. Ce n'est pas vrai. Les ordinateurs ne comprennent que le code machine, c'est-à-dire le code assemblé pour l'architecture du processeur de l'ordinateur. Certains programmes sont disponibles en versions 32 bits et 64 bits, et ceux qui utilisent un système d'exploitation 32 bits ne peuvent pas exécuter de programmes 64 bits. Les compilateurs transforment le code que le programmeur écrit en code machine.
Cependant, toutes les langues n'ont pas besoin d'être compilées. Certaines langues sont appelées langues interprétées ; ce sont des langages qui sont compilés au moment de l'exécution. Les langages interprétés doivent toujours être compilés en code machine, mais cela se produit lors de l'exécution du programme. Une fois que le code d'un langage compilé est transformé en un programme compilé, il n'est pas nécessaire pour l'utilisateur final de ce programme d'avoir le compilateur sur sa machine. Cependant, l'utilisateur d'un programme écrit dans un langage interprété est tenu d'avoir l'interprète sur sa machine. Quelques exemples de langages compilés sont C, C++, C# et Objective-C, tandis que quelques exemples de langages interprétés sont Python, Ruby, PHP et JavaScript.