Académique Documents
Professionnel Documents
Culture Documents
Travaux dirigés N° 1
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;
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-