Que signifie « compiler » un programme informatique ?


Pour être plus précis, il s'agit de convertir un langage de programmation en un niveau inférieur d'un langage de programmation. Par exemple, aujourd'hui, lorsque vous écrivez une application Android, vous écrivez généralement en Java. Ensuite, vous appelez javac, le compilateur Java, pour le compiler en bytecode Java, qui est un langage binaire que la JVM (Java Virtual Machine) interprète et exécute. Mais Android n'utilise pas la JVM et le bytecode Java. Il utilise un bytecode optimisé pour Android, appelé DEX. Le système de compilation d'Android compile alors votre bytecode java en bytecode DEX et le conditionne dans un apk (fichier d'application, similaire au jar java). Sur les 'droids modernes, exécutant ART (android runtime), une fois que vous installez l'application, il la compile en fichiers OAT qui sont des binaires s'exécutant directement sur le CPU du téléphone.


Ils sont tous des langages de programmation, Java, java bytecode, DEX, et code machine. Au Ye Olde Days, les programmeurs écrivaient du code machine. Puis les compilateurs ont été inventés (à la fin des années 1950, le premier langage symbolique correct était le fortran). Il y a encore des gens qui s'amusent avec des microcontrôleurs et les programment en binaire en basculant des interrupteurs (chaque interrupteur représente un bit d'instruction) et en voyant les résultats sur des LEDs représentant chacune un bit. Mais c'est comme si un hipster emmenait une machine à écrire dans son bar à expresso local pour écrire de la poésie (tout en ayant un iPhone dans sa poche)...


.