Un compilateur est un programme informatique qui transforme un code source écrit dans un langage de programmation (le langage source) en un autre langage informatique (le langage cible).
Pour quâil puisse ĂȘtre exploitĂ© par la machine, le compilateur traduit le code source, Ă©crit dans un langage de haut niveau dâabstraction, facilement comprĂ©hensible par lâhumain, vers un langage de plus bas niveau, un langage dâassemblage ou langage machine. Dans le cas de langage semi-compilĂ© (ou semi-interprĂ©tĂ©), le code source est traduit en un langage intermĂ©diaire, sous forme binaire (code objet ou bytecode), avant dâĂȘtre lui-mĂȘme interprĂ©tĂ© ou compilĂ©.
Inversement, un programme qui traduit un langage de bas niveau vers un langage de plus haut niveau est un décompilateur.
Un compilateur effectue les opérations suivantes : analyse lexicale, pré-traitement (préprocesseur), analyse syntaxique (parsing), analyse sémantique, génération de code et optimisation de code.
Quand le programme compilĂ© (code objet) peut ĂȘtre exĂ©cutĂ© sur un ordinateur dont le processeur ou le systĂšme dâexploitation est diffĂ©rent de celui du compilateur, on parle de compilation croisĂ©e.
La compilation est souvent suivie dâune Ă©tape dâĂ©dition des liens, pour gĂ©nĂ©rer un fichier exĂ©cutable.
On distingue deux options de compilation :
Ahead-of-time (AOT), oĂč il faut compiler le programme avant de lancer lâapplication : câest la situation traditionnelle.
Compilation à la volée (Just-in-Time, en abrégé JIT) : cette faculté est apparue dans les années 1980 (par ex. avec Tcl/Tk).
Compilateur was originally published on Centre de Ressources