Faculté des Sciences de Bizerte AU : 2016 -
2017
Département Informatique
SI 2
Compilation
TD 4
Exercice 1. Récursivité gauche
Les grammaires suivantes sont-elles récursives à gauche ? Enlever la
récursivité gauche si nécessaire.
G1 :
A Aba | b
B Abb
G2 :
E E+T | T
T T*F | F
F (E) | idE) | id
G3 :
S (E) | idL) | a
L L,S | S
Exercice 2. – Factorisation à gauche
Factoriser les grammaires suivantes à gauche:
G1 :
STMT if EXPR then STMT else STMT
| if EXPR then STMT
G2:
S aAbS | aAbSeB | a
A bcB | bca
B ab
Exercice 3. – Analyse syntaxique ascendante
Soit G = (N, T, S, R) une grammaire hors contexte avec :
N = {BL, SD, SI}
T = {start, end, d, i, ;}
S = {BL}
R={
BL → start SD ; SI end
SD → d | SD ; d
SI → i | SI ;
}
1. Construire l’automate fini déterministe correspondant à l’analyse LR(E) | id0)
2. Construire les tables Action et GoTo. La grammaire G est-elle LR(E) | id0) ?
3. En utilisant un automate à pile et les tables Action et GoTo, analyser la
chaîne « start d ; d ; i end »
Exercice 4. – Analyse syntaxique ascendante (suite)
Soit G = (N, T, S, R) une grammaire hors contexte avec :
N = {S, L, K}
T = {*, =, a}
S = {S}
R={
S→L=K | K
L→ *K | a
K → L
}
1. Construire l’automate fini déterministe correspondant à l’analyse LR(E) | id0).
2. La grammaire G est-elle LR(E) | id0) ?