Université Mohamed Khider – Biskra.
Année universitaire: 2022/2023
Faculté des sciences de la Vie et de la Niveau: 3ème Année Licence
Nature et des Sciences Exactes Module : Compilation
Département d'Informatique.
TD N°3
Exercice 01: Soit la grammaire G( {S,L},{a,b,c},S) :
S aLb |ab | c
L S | L S
1. Construire la table d'analyse SLR (1) de G. G est-elle SLR(1) ? justifier votre réponse.
2. Construire la table d'analyse LR (0) de G. G est-elle LR(0) ? justifier votre réponse.
3. Analyser la chaine « accaaccabb »
Exercice 02: Soit G la grammaire suivante pour des blocs Java (simplifiés) :
bloc → { inst_l }
inst_l → inst_l inst | ε
inst → decl | exp | bloc
decl et exp sont ici des unités lexicales terminales pour les déclarations et les expressions.
1. Construire l'automate LR pour G.
2. G est-elle LR(0) ? SLR(1) ? Justifier rigoureusement en énumérant tous les conflits et en
précisant leur type (shift/reduce ou reduce/reduce).
Exercice 03 : Soit G la grammaire suivante l’analyse de la boucle while do en PASCAL :
E → while E do E
E → id := E
E→E+E
E → id
1. Donner l’automate des items LR(1) canoniques pour G.
2. Donner la table des actions et successeurs LR (1) de G.
3. La grammaire G est-elle LR(1)?
4. Si cette grammaire est de type LALR(1)? Donner le résultat de l’analyse de la chaîne
“ w = while id1+id3 do id5:=id4+id3”.
Exercice 04 :Soit G la grammaire Yacc suivante :
%start E
F : ’(’ E ’)’ | ’id’ ;
RF : ’∗’ F RF | ;
T : F RF ;
RT : ’+’ T RT | ;
E : ’id’ ’:=’ E | T RT ;
Combien G a-t-elle de conflits LALR(1) ? Les lister.