Académique Documents
Professionnel Documents
Culture Documents
Compilation
Année universitaire
2018 – 2019
Introduction à la compilation
Un compilateur est un programme qui traduit un autre programme
programme programme
compilateur
source cible
messages
d'erreur
Premier compilateur : compilateur Fortran de J. Backus (1957)
Langage source : langage de haut niveau (C, C++, Java, Pascal, Fortran...)
Langage cible : langage de bas niveau (assembleur, langage machine)
http://igm.univ-mlv.fr/~laporte/compil/plan.html
Analyseur lexical
Analyseur syntaxique
Analyseur sémantique
Gestion de la
table des symboles Générateur de code intermédiaire gestion des erreurs
« Optimiseur » de code
Variable expression
position =
expression + expression
Représentations utilisées
- Code à trois adresses
temp1 := inttoreal(60)
temp2 := id3 * temp1
temp3 := id2 + temp2
id1 := temp3
- Arbres syntaxiques
temp1 := inttoreal(60)
temp2 := id3 * temp1 temp1 := id3 * 60.0
temp3 := id2 + temp2 id1 := id2 + temp1
id1 := temp3
id3 60
optimiseur de code
analyseur sémantique
temp1 := inttoreal(60)
temp2 := id3 * temp1
id1 + temp3 := id2 + temp2
id1 := temp3
id2 *
id3 inttoreal
générateur de code intermédiaire
60
Générateurs de traducteurs
Engendrent un traducteur à partir d’un schéma de traduction (grammaire +
règles sémantiques)
Bison, Yacc
04/10/2018 Hanêne GHORBEL AGREBI 12