Académique Documents
Professionnel Documents
Culture Documents
Exercice 1
On considère la grammaire suivante extraite du langage C:
expression unaire
unaire *unaire | postfixe
postfixe postfixe ++ | primaire
primaire id | ( expression )
où {expression, unaire, postfixe, primaire} l'ensemble des non terminaux et {*, ++, id, (, )} des non
terminaux.
1. Donnez l'arbre de dérivation pour le mot *p++.
2. En déduire si dans le langage C, l'expression *i++ est équivalente à l'expression (*p)++ ou à l'expression *(p++).
(*p)++ signifie en C incrémentation de la valeur stockée à l'adresse indiquée par le pointeur p et *(p++)
incrémentation du pointeur p.
Exercice 2
Compléter les symboles de transition et de prévision de la collection LR(1) suivante:
1/4
Exercice 3
Soit la grammaire G des pointeurs et des tableaux du C:
S' S
S TN
T int
N N [ nb ] *N id
Avec S' l'axiome, {S, T, N} les non terminaux et {int, [, ], nb, *, id} les terminaux "* id [ ]"
1
TDde Compilation TD n°2/2: Analyse syntaxique ascendante
USDB - Dept Informatique - Licence SI/S5 /2023-2024 Mr HAMMOUDA M.
Exercice 4
Soit la grammaire suivante où S' est l'axiome, {S,A} l'ensemble des non terminaux et {a,b} l'ensemble des
terminaux
(0) S' S
(1) S AA
(2) A aA
(3) Ab
Exercice 5
Considérons la grammaire augmentée suivante, où A est l'axiome et {e, i, x} est l'ensemble des symboles
terminaux:
(0) A → S
(1) S → i S
(2) S → i S e S
(3) S → x
(2) Quels sont le ou les états qui présentent des conflits? Justifiez.
(3) Construire tous les arbres syntaxiques possibles du mot " i i x e x" et que peut-on déduire?
(4) On suppose que i, e et x signifient respectivement if, else et une instruction quelconque. Déduire comment
on peut résoudre les conflits éventuels de manière à associer chaque occurrence de e à l'occurrence de i la
plus proche.
2
TDde Compilation TD n°2/2: Analyse syntaxique ascendante
USDB - Dept Informatique - Licence SI/S5 /2023-2024 Mr HAMMOUDA M.
Exercice 6
Soit la grammaire suivante extraite de la grammaire engendrant le langage des expressions rationnelles
définie par G = (T, N,S, P)
avec T = {a, * }, N = {R} , S l'axiome et P l'ensemble des productions:
P={ S R
R RR (concaténation)
| R*
| a
}
On conviendra que * et la concaténation sont associatifs à gauche, et que la priorité de * est supérieure à
celle de la concaténation.
3. En donnant des exemples de longueur 3 (nombre de symboles "a" et "*" dans le mot), montrez
comment on peut résoudre les conflits de l'analyseur obtenu.
Exercice 7
Soit la grammaire G suivante:
(0) S E
(1) E E ∩ E
(2) E E E
(3) E E+
(4) E a
Questions:
a- Construire la table d'analyse LR(1)
b- Montrer comment on peut éliminer les conflits de la table d'analyse en adoptant les conventions que ∩ et
associatifs à gauche, ∩ est plus prioritaire que + soit appliqué au "a" le plus proche.