Académique Documents
Professionnel Documents
Culture Documents
TD4
Analyse Syntaxique
Exercice1 :
Soit la grammaire LL(1) pour une petite expression logique qui utilise les opérateurs && et ||
:
E -> T E'
E' -> || T E' | ε
T -> F T'
T' -> && F T' | ε
F -> ( E ) | id | ! F
1. Calculer l'ensemble des premiers de cette grammaire
prem(E) = {id, (, !}
prem(E') = {||, ε}
prem(T) = {id, (, !}
prem(T') = {&&, ε}
prem(F) = {id, (, !}
2. Calculer l'ensemble des suivants de cette grammaire
suiv(E) = {||, $}
suiv(E') = {||, $}
suiv(T) = {||, &&, $}
suiv(T') = {||, &&, $}
suiv(F) = {||, &&, $}
3. Établir la table d'analyse
Exercice2 :
Voici un autre exemple de grammaire LL(1) :
S → if C then S else S | if C then S | other
C → id < id
1. Cette grammaire est-elle ambiguë?
Cette grammaire n'est pas ambigüe, car chaque non-terminal a une seule production
pour chaque choix possible d'entrée.
2. Calculer l'ensemble des premiers de cette grammaire
Premiers(S) = {if, other}
Premiers(S1) = {if, other}
Premiers(C) = {id}
3. Calculer l'ensemble des suivants de cette grammaire
Suivants(S) = {$}
Suivants(S1) = {else, $}
Suivants(C) = {then}
4. Établir la table d'analyse
2. Établir la table d'analyse et montrer que cette grammaire n'est pas LL(1)
Exercice4 :
Soit la grammaire G dont les règles de production sont les suivantes :
S -> L B (P1)
B -> :S | :=L (P2)
E -> a | L (P3)
J -> ,EJ|) (P4)
L -> (EJ (P5)
S: axiome
1. Donner explicitement le quadruplet <VT, VN, S, P> de G.
VT= {‘ :’ , ‘=’, ‘(’, ‘)’, ‘a’, ‘,’, }
VN= {S, L, B, E, J}
S= S
P= {P1, P2, P3, P4, P5}
Il convient de noter que l'élimination de l'ambiguïté peut parfois entraîner une perte
de concision ou de lisibilité de la grammaire. Il est donc important de trouver un
équilibre entre la simplicité de la grammaire et son absence d'ambiguïté
3. Analyser l'instruction suivante en utilisant le choix de la question précédente :
IF x THEN IF y THEN i:=j ELSE i:=k