|<- [[Writing source code]]|[[Why JavaScript]] ->| Il est nécéssaire de convertir le code source en langage machine. Compiler : transformation du code source en code machine avant exécution par un compilateur Interpréter : transformation du code pendant l'exécution par un interpréteur ^type^avantages^inconvénients^ |compilé|prêt à être exécuté, généralement plus rapide et optimisé|pas cross-platform| |interprété|cross-platform, plus facile à tester, plus facile à debugger|nécessite un interpréteur, peut être plus lent| Aussi à noter : langage compilé = code source non accessible par l'utilisateur, et inversement pour le langage interprété. Un autre manière de faire : intermediate langage -> précompilé avant distribution en un langage le plus proche du langage machine en restant interprétable. === exemples de langages === ^Compilé|C,C++,Objective-C| ^interprété|PHP, JavaScript| ^hybride|Java, Python, C#|