Vous êtes sur la page 1sur 2

Université Djilali Bounaama Khemis Miliana

Master1 Ingénierie du logiciel


TD de compilation

Travaux dirigés N° 1

Exercice 1. Traduire l'expression – (a + b) * (c +d) + (a +b +c) en :


1. quadruplets ;
2. triplets
3. triplets indirects

Exercice 2.
Considérer l'instruction suivante permettant de calculer la variance de plusieurs expressions
arithmétiques :
id := Variance (<Exp1>, <Exp2>, …, <Expn>)
1. Donner la grammaire permettant de générer l'instruction d'affectation décrite ci-
dessus.
2. Donner le schéma de traduction qui permet d’évaluer la variance dans le cas d'une
analyse descendante.

Exercice 3.

Ecrire les routines sémantiques dans le cas d’une analyse descendante (descente récursive)
pour générer les quadruplets correspondant à une expression de condition.
Utiliser obligatoirement les attributs synthétisés et les attributs hérités dans votre schéma de
traduction.
Utiliser les priorités et associativités classiques des opérateurs logiques et arithmétiques. Les
opérateurs logiques sont moins prioritaires que les opérateurs relationnels qui sont eux moins
prioritaires que les opérateurs arithmétiques.
Appliquer votre schéma pour générer les quadruplets correspondant à l'expression suivante:
(( a + b >= 5) or ( c < a – b * 4) and (a > d))

-1/2-
Exercice 4. Soit l’instruction switch dont la forme générale est :
switch <expr> {
<val-1> : <inst-1>;
<val-2> : <inst-2>; break ;
<val-3> : <inst-3>;
: :
<val-n> : <inst-n>;
default : <inst-e>; }
switch, default et break sont des mots réservés;

Donner le schéma de traduction (routines sémantiques) de l’instruction switch dans le cas


d’une analyse descendante générant des quadruplets.

Exercice 5. Soit l’instruction FOR du langage C dont la forme générale est la suivante :
FOR (partie1 ; partie2 ; partie3) instructions
Partie1 : liste d’initialisations de variables
Partie2 : condition ou expression logique
Partie3 : liste d’incrémentation de variables
Donner le schéma de traduction de cette instruction dans le cas d’une analyse ascendante
générant des quadruplets :
1. Un exemple de déroulement
2. La grammaire
3. Les routines sémantiques

-2/2-

Vous aimerez peut-être aussi