La structure d’un compilateur

La structure d’un compilateur

En termes de domaines informatiques et des NTIC, l’évolution est trop rapide et de nouveaux outils et nouveaux termes trouvent de plus en plus leur place. Un de ces concepts est le compilateur. On entend par compilateur tout programme informatique qui a pour mission de transformer un code source d’un langage de programmation en un autre langage informatique. Ce dernier est appelé le langage cible. Il utilise et traverse de nombreux procédés pour pouvoir aboutir à cette mission.

Analyseur lexical d’un compilateur

L’analyseur lexical d’un compilateur est le premier à œuvrer dans les procédés de travail d’un compilateur et tout le reste du travail en dépend. C’est le noyau du processus tout entier. L’analyse lexicale consiste tout d’abord à découper le code source en des petits morceaux. Ces morceaux sont appelés jetons ou en anglais tokens. Les étapes Obligatoires à suivre sont l’analyse lexicale, le pré – processeur, l’analyse syntaxique, l’analyse sémantique et enfin la génération des codes optimales. Dans le but de pouvoir servir à la machine, le compilateur procède tout d’abord en traduisant le code source d’un langage de haut niveau vers un autre de plus bas niveau. Le premier niveau est désigné par le terme niveau d’abstraction et est facile à comprendre par l’humain. Le deuxième niveau de langage est désigné par le langage d’assemblage ou le langage machine. C’est après que vient le langage intermédiaire de forme binaire, code objet avant de pouvoir subir une interprétation ou une compilation. Il est à noter que dans le cas contraire, on désigne par décompilateur tout programme pouvant traduire un langage de bas niveau vers un autre plus haut.

L’optimisation du code

La compilation d’un langage est composée de deux parties dont la première est la partie frontale constituée par l’analyse lexicale, syntaxique et sémantique, le langage intermédiaires et l’optimisation. La deuxième partie est la génération de code qui est la partie finale de la compilation. On entend par optimisation du code toute opération pouvant rendre optimale le code intermédiaires selon son usage en appliquant de meilleures techniques. Ces différentes parties font d’un compilateur fonctionnel.