L'étape finale de la création d'un programme consiste à traduire 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 pour effectuer n'importe quelle tâche, les ordinateurs doivent recevoir des commandes dans un langage qu'ils comprennent, proche du binaire et fonctionnant avec des structures de données primitives (bit, octet ou mot). Le processus de traduction des déclarations spécifiques à un domaine de langages de haut niveau en code binaire est appelé traduction. Il existe deux méthodes de traduction: la compilation et l'interprétation.
Compilateur - qu'est-ce que c'est ?
L'analyse de nombreuses interprétations des termes "compilateur" et "compilation" nous permet de mettre en évidence la définition suivante. Un compilateur est un programme conçu pour traduire le texte d'un algorithme source d'un langage de haut niveau en un ensemble d'instructions équivalent dans un langage orienté machine. C'est ce qu'on appelle le code objet, pour l'assemblage ultérieur du code objet résultant dans un module de programme prêt à l'emploi.
Compilateur et interpréteur - similitudes et différences
Un interpréteur est un utilitaire quiainsi qu'un compilateur, conçu pour traduire le code source en code machine. Cependant, contrairement au compilateur, l'interpréteur s'exécute à chaque fois avec le programme et effectue la traduction ligne par ligne.
On peut dire que le compilateur et l'interpréteur sont des processeurs de langage qui permettent à l'ordinateur de reconnaître et d'exécuter les commandes données par le programmeur.
Classification du compilateur
Les compilateurs sont classés principalement selon les caractéristiques liées à leurs domaines d'application pratique.
Vectorizing compiler est un utilitaire qui traduit le code source en code objet et est adapté aux ordinateurs équipés de processeurs vectoriels.
Un compilateur flexible est programmé dans un langage de haut niveau de manière modulaire. Sa gestion s'effectue à l'aide de tableaux. Il est également possible de l'exécuter à l'aide du compilateur de compilateurs.
Le compilateur incrémentiel est un processeur de langage qui retraduit des fragments séparés de code source et des ajouts à celui-ci. Cependant, cela évite de recompiler toute l'application.
Un compilateur interprétatif (pas à pas) est un utilitaire qui effectue séquentiellement une compilation indépendante de chaque instruction ou commande d'un code source de haut niveau.
Un compilateur de compilateurs est un traducteur capable d'accepter une description formelle pour un langage de programmation et de générer indépendamment un compilateur pour n'importe quel langage.
Le compilateur de débogage vous permet de trouver et de corriger certains types d'erreurs de syntaxe commises lors de l'écriture du code source
Un compilateur résident occupe une place permanente dans la RAM et est donc réutilisable par un large éventail de tâches.
Le compilateur auto-compilé est écrit dans la même langue que la traduction.
Le compilateur universel est basé sur une description formelle des paramètres sémantiques et syntaxiques du langage d'entrée. Les principaux composants d'un tel utilitaire sont le noyau, les chargeurs syntaxiques et sémantiques.
Périphérique de compilation
Un compilateur et un éditeur de liens sont au cœur de tout compilateur. Souvent, lors de la compilation, un éditeur de liens externe est utilisé et le compilateur lui-même n'exécute que la fonction de traduction. Il arrive également que le compilateur soit implémenté comme une sorte de programme gestionnaire qui est 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.
Langages de programmation et méthodes de traduction
Malgré le fait qu'un programme écrit dans n'importe quel langage de programmation peut être à la fois compilé et interprété, 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. Sont en cours d'élaborationLes compilateurs C sont assez faciles, grâce à son niveau relativement bas et à un petit nombre d'éléments structurels.
Avantages et inconvénients des compilateurs et des interpréteurs. Candidatures
Notez que les applications compilées sont plus rapides que les applications interprétées, mais en même temps, le code machine obtenu à la suite de la compilation dépend de la plate-forme matérielle. Ainsi, un programme écrit et compilé pour Windows ne fonctionnera pas, par exemple, sous Linux. Ainsi, dans le cas des applications Internet, lorsqu'il est impossible de dire à l'avance dans quel environnement elles vont fonctionner, elles utilisent l'interprétation ou le bytecode (dans ce cas, le programme source est converti en une forme intermédiaire exécutable sur différents matériels plates-formes).