Amorçage des compilateurs Un compilateur est un programme écrit dans un langage Peut-il être écrit dans le langage cible ? dans le langage source ? comment le modifier quand on crée une nouvelle version du langage source ? quand on crée une nouvelle version du langage cible ?
Amorçage des compilateurs Représentation graphique d'un programme en langage L qui traduit du langage S en langage O : SO L L peut être un langage évolué (le programme a été écrit à la main) ou de bas niveau (le programme a été compilé)
Si le programme est compilé et exécuté sur la même machine, L = O : SO O Si le programme est écrit dans un langage évolué L, il faut le compiler pour pouvoir l'exécuter : SO LLO O Résultat :SO O
Compilation d'un compilateur Un compilateur est un programme, il est généralement écrit puis compilé AB CCD E On obtient AB D
Evolution d'un compilateur Comment construire une nouvelle version d'un compilateur ? On peut l'écrire dans le langage source : SO SSO O
Evolution du langage source Le langage source S évolue vers une version S'. Comment construire un compilateur ? S'O O On écrit S'O SSO O
Migration vers un autre langage cible Le langage objet O évolue vers une version O'. Comment construire un compilateur ? SO' O' On écrit SO' SSO O
On a maintenant un compilateur croisé SO' O On compile une deuxième fois avec le compilateur croisé SO' SSO' O Un compilateur croisé tourne sur un processeur et produit du code pour un autre