Il existe trois façons principales de traduire du code source en code machine : la compilation du code, c'est-à-dire le traduire en binaire ; l'interprétation, c'est-à-dire le lire en temps réel et exécuter les instructions, c'est l'interpréteur qui se charge de faire ça ; l'hybride, qui combine compilation et
Les compilateurs actuels sont généralement écrits dans le langage qu'ils doivent compiler ; par exemple un compilateur C est écrit en C, SmallTalk. en SmallTalk, Lisp.
La compilation offre plusieurs avantages par rapport à d'autres méthodes de programmation telles que les interprètes.
Cela permet un temps d'exécution plus rapide puisque le langage compilé est beaucoup plus proche du code machine que les langages interprétés.