La dernière étape de la création d'un programme esttraduction d'un algorithme écrit dans l'un des langages de programmation (C / C ++, Pascal, etc.) dans un langage machine de bas niveau. Cela est dû au fait que les ordinateurs, pour effectuer toute tâche, doivent définir des commandes dans un langage qu'ils comprennent, proche du binaire et fonctionnant sur des structures de données primitives (bit, octet ou mot). Le processus de traduction des opérateurs orientés problèmes des langages de haut niveau en code binaire est appelé traduction. Il existe deux méthodes de traduction: la compilation et l'interprétation.
L'analyse des nombreuses interprétations des termes «compilateur» et «compilation» nous permet de mettre en évidence la définition suivante. Compilateur Est un programme conçu pour traduirele texte de l'algorithme d'origine d'un langage de haut niveau dans un ensemble d'instructions équivalent dans un langage orienté machine. C'est le soi-disant code objet, pour l'assemblage ultérieur du code objet résultant dans un module de programme prêt à l'emploi.
Interprète Est un utilitaire, tout comme un compilateur,conçu pour traduire le code source en code machine. Cependant, contrairement au compilateur, l'interpréteur est lancé à chaque fois avec le programme et effectue la traduction ligne par ligne.
On peut dire qu'un compilateur et un interpréteur sont des processeurs de langage qui permettent à une machine informatique de reconnaître et d'exécuter des instructions données par un programmeur.
Les compilateurs sont classés principalement en fonction des caractéristiques liées à leurs domaines d'application pratique.
Compilateur de vectorisation Est un utilitaire qui traduit le code source en code objet et est adapté pour les ordinateurs équipés de processeurs vectoriels.
Compilateur flexible programmé en langage de haut niveau sur une base modulaire. Sa gestion est réalisée à l'aide de tables. Il est également possible de l'exécuter avec un compilateur compilateur.
Compilateur incrémental Est un processeur de langage qui retraduit des fragments individuels du code source et des ajouts à celui-ci. Cependant, il élimine le besoin de recompiler l'application entière.
Compilateur d'interprétation (étape par étape) Est un utilitaire qui compile indépendamment chaque instruction ou commande dans un code source de haut niveau de manière séquentielle.
Compilateur compilateur - un traducteur capable d'accepter une description formelle d'un langage de programmation et de générer indépendamment un compilateur pour n'importe quel langage.
Compilateur de débogage vous permet de trouver et d'éliminer certains types d'erreurs de syntaxe lors de l'écriture du code source
Compilateur résident occupe une place permanente dans la RAM et, par conséquent, est disponible pour une réutilisation par un large éventail de tâches.
Compilateur auto-compilant écrit dans la même langue à partir de laquelle la diffusion est effectuée.
Compilateur générique se base sur une description formelle des paramètres sémantiques et syntaxiques du langage d'entrée. Les principaux composants d'un tel utilitaire sont les chargeurs de base, syntaxiques et sémantiques.
Tout compilateur est basé sur un traducteur etéditeur de liens. Souvent, lors de la compilation, un éditeur de liens externe est utilisé et le compilateur lui-même effectue uniquement la fonction de traduction. Il arrive aussi que le compilateur soit implémenté comme une sorte de programme gestionnaire associé au traducteur (ou aux traducteurs, si différents langages de programmation ont été utilisés lors de l'écriture du code source) et à l'éditeur de liens, et démarre leur exécution si nécessaire.
Malgré le fait que le programme écrit enn'importe quel langage de programmation, vous pouvez à la fois compiler et interpréter, de nombreux langages de haut niveau ont une prédisposition à l'une ou l'autre méthode de traduction. Ainsi, le langage C a été conçu à l'origine pour la compilation, et Java - pour l'interprétation du programme écrit. Les compilateurs C se développent assez facilement, en raison de son niveau relativement bas et d'un petit nombre d'éléments structurels.
Notez que les applications compilées ontvitesse supérieure par rapport à celles interprétées, mais en même temps le code machine de compilation résultant dépend de la plate-forme matérielle. Ainsi, un programme écrit et compilé pour Windows ne fonctionnera pas, par exemple, sous Linux. Par conséquent, dans le cas des applications Internet, lorsqu'il est impossible de dire à l'avance dans quel environnement elles fonctionneront, elles utilisent l'interprétation ou le bytecode (dans ce cas, le programme d'origine est converti en une forme intermédiaire qui peut être exécutée sur diverses plates-formes matérielles).