Cour compilation
Introduction à la compilation
Tout programme écrit dans un langage de haut niveau ne peut être exécuté par un ordinateur que s'il est traduit en instructions exécutables par l'ordinateur (langage machine, instructions élémentaires directement exécutables par le processeur). Pour traduire un programme écrit dans un langage de haut niveau (par le programmeur) en instruction exécutables (par un ordinateur) on utilise un compilateur. Le premier compilateur est un compilateur Fortran, il a été développé dans les années 50 et il a nécessité 18 hommes/années de travail.
I. Qu’est-ce qu’un compilateur ?
En informatique, Il est possible de traduire une procédure exprimée dans un formalisme donné en une procédure exprimée dans un formalisme équivalent.
Programme Source écrit dans un langage L1
Traducteur
Programme Cible écrit dans un langage L2
Lorsque le langage cible (L2) est un langage assembleur ou un langage machine, alors le traducteur est dit compilateur. Donc un compilateur est un programme qui lit un programme source, rédigé généralement dans un langage de programmation de haut niveau et qui le traduit en un programme équivalent rédigé dans un autre langage (langage cible, généralement de bas niveau).
Programme Source
(c, c++, Pascal...)
Compilateur
Programme Cible
(Assembleur, langage machine,...)
Le compilateur doit également signaler toute erreur qu’il détecterait dans le programme source.
II. Structure de principe d’un compilateur
Le travail du compilateur se décompose en deux phases principales: une phase d’analyse et une phase de production. A côté de ces deux phases on trouve une autre phase qui est la gestion parallèle.
II.1. Phase d’analyse
1) Analyse lexicale L’objectif de cette phase est la reconnaissance/ identification du type des mots du langage. En effet, le flot de caractères qui constituent le programme source sont regroupés pour former des séquences de caractères significatives appelés lexèmes.