Concept en définition ABC
Divers / / July 04, 2021
Par Guillem Alsina González, en sept. 2017
Comment s'entendre avec quelqu'un avec qui on n'a pas de langue en commun? Par un traducteur. Cette fonction de traduction est ce qui effectue un compilateur se transformer en code code source exécutable écrit par un programmeur.
La compilation est le processus par lequel un programme écrit dans un langage de haut niveau est traduit en code machine utilisé par une certaine architecture informatique, pour son exécution direct.
Par conséquent, et selon l'explication que nous venons de proposer, ce système nécessite le choix d'un architecture destination, qui peut être différente dans chaque cas et nous obligera à compiler séparément pour chacune des différentes architectures dans lesquelles nous voulons que notre programme s'exécute.
Ainsi, par exemple, on peut avancer sur un certain programme pour l'architecture x86 32 bits, le x86 64 bits, le PowerPC ou l'ARM différenciant également 32 et 64 bits, selon le type d'appareil dans lequel on veut exécuter.
De plus, nous devons également prendre en compte les différents systèmes d'exploitation, même si nous travaillons pour la même plateforme Matériel, puisque chacun a une manière différente d'interagir avec la machine physique
Prenons l'exemple de la plate-forme x86 64 bits. Nous pouvons vouloir compiler pour les fenêtres, GNU / Linux ou macOS, ou pour chacun d'entre eux, ce qui implique trois processus de compilation distincts.
Parfois, cela nous oblige à modifier légèrement le code source, en gardant souvent trois versions distinctes (ou plus, selon le cas) afin qu'ils interagissent correctement avec les particularités et les différences de la plateforme de destination.
Le processus de compilation suit une série d'étapes, telles que la détection d'erreurs syntaxiques dans le code source, puis une pré-traité pour connaître les ressources dont le programme a besoin, et enfin le lien avec les bibliothèques et ressources nécessaires à son exécution.
De cette façon, un déposer exécutable contenant tous Ressources nécessaires à son exécution, et les instructions nécessaires pour accéder aux ressources externes, telles que les bibliothèques de code partagées (partagé).
Le processus de compilation se fait avec un ou plusieurs outils spécifiques (compilateur), bien qu'il soit courant que cela soit intégré dans des environnements de développement (IDE), facilitant ainsi son usage.
Chaque langue de programmation Il possède son propre compilateur, bien que depuis longtemps, le compilateur correspondant à un langage et à un environnement soit capable de générer des exécutables pour différentes plateformes. Logiciel différent.
Existe-t-il une alternative au processus de construction? Oui, et ce sont des langues interprétées.
Les langues interprétées sont celles qui sont traduites à l'exécution et non compilées.
Par conséquent, leur code source est toujours disponible, et ce dont ils ont besoin, c'est que dans le système opératif sur lequel ils sont exécutés, il y a un interprète.
En évitant le processus de compilation, si l'interpréteur est disponible pour plusieurs plateformes, il sera possible d'exécuter le programme directement sur chacun d'entre eux, généralement sans modifications.
Autre se concentrer Les alternatives, à mi-chemin entre les langages compilés et interprétés, sont celles qui nécessitent une machine virtuelle pour fonctionner, par exemple Java.
Les langages de programmation qui s'exécutent au-dessus d'une couche de virtualisation (machine virtuelle) nécessitent un processus intermédiaire similaire à celui de compilation, mais cela se traduit par un code qui n'est pas directement exécutable, bien que plus optimisé que celui exécuté par un langage interprété.
Dans ces cas, cela nécessite un processus de forme similaire à celui de la compilation, mais qui donne un résultat différent et qui nécessite toujours, dans tous les cas, la installation d'un Durée dans le système d'exploitation dans lequel nous voulons exécuter notre programme.
Photos: Fotolia - Alexander Pokusay / Onot
Sujets en compilation