Vous êtes sur la page 1sur 1

Université Djilali Bounaama Khemis Miliana

Master1 Ingénierie du logiciel


TD de compilation

Travaux dirigés N° 4

Exercice 1.
1. Construire le DAG pour l'expression arithmétique suivante :
t = (a+b*c) +d*e-b*c +(a+b*c)/(b*c)+d*e
2. Générer à partir du DAG, les quadruplets permettant d'évaluer l'expression précédente
(avec optimisation du nombre de temporaires)
3. Générer le code machine correspondant à ces quadruplets en appliquant l'algorithme
vu en cours.
Trois registres R0, R1 et R2 sont disponibles. On dispose des codes opérations
suivants : MOV, ADD, SUB, DIV et MUL.

Exercice 2. On considère le code intermédiaire suivant :


t1 = b * c
t2 = a + t1
t3 = d + e
t4 = t3 – e
t5 = d + e
t6 = t5 * t4
t7 = t1 – t6
1. Générer le code machine correspondant à ces quadruplets en appliquant l'algorithme
vu en cours.
Deux registres R0 et R1 sont disponibles. On dispose des codes opérations suivants :
MOV, ADD, SUB, DIV et MUL.
2. Construire le DAG correspondant au code intermédiaire précédent.
3. Générer alors le code machine correspondant.
4. Comparer les codes machines obtenus ; commenter.

-1-