Vous êtes sur la page 1sur 5

Analyse Syntaxique

 Analyse prédictive: Grammaire LL(1)


Définition
Soit G=(VT,VN,R,S) une grammaire hors-contexte
La grammaire G est de type LL(1) si et seulement si pour toutes les productions
de la forme A → β1|β2| ……|βn :
- i≠j First(βi) ∩ First(βj)=Φ
- Si i tel que βi ε alors Follow(A)∩First(βj)=Φ j
- Si i tel que βi ε alors j≠i , βj ε

Remarque
Le mot LL(k) est l’abréviation de:
L: Left to Right Scaning
L: Left Most Derivation
k: Le nombre des symboles de prévision

129
Analyse Syntaxique
 Analyse prédictive: Grammaire LL(1)
Exemples des grammaires LL(1)

Grammaire Type Raisons


S→a|Ac LL(1) -First(a) ∩ First(Ac)=Φ
A→bAa|c -First(bAa) ∩ First(c)=Φ

S→a|Ac|bS Non LL(1) -First(Ac) ∩ First(bS) ≠Φ


A→bAa|c
S→a|Ac LL(1) -First(a) ∩ First(Ac)=Φ
A→bAa|ε -Follow(A) ∩ First(bAa) =Φ

130
Analyse Syntaxique
 Analyse prédictive: Suppression de la récursivité à gauche
Grammaire récursive à gauche (GRG):
Une grammaire est récursive à gauche si elle contient un non-terminal A telle
qu‘elle existe une dérivation A Aα, ou α est une chaîne quelconque.
Une grammaire récursive qui contient les deux règles suivantes: A→Aα|β est non
LL(1) (Démontrer cette propriété)

Transformation d’une GRG en une grammaire LL(1)


- Une grammaire récursive comportant les productions suivantes A→Aα|β peut
être transformée en LL(1) par la technique suivante: A→βA’ , A’ →αA’|ε.
- On peut généraliser cette technique:
Les productions suivantes: A → Aα1|Aα2|…|Aαn|β1|β2| ……|βm peuvent être
remplacées par:
A→β1A’ |β2A’ | ……|βmA’ , A’ →α1A’|α2A’|…|αnA’|ε.

131
Analyse Syntaxique
 Analyse prédictive: Factorisation
Grammaire nécessite une factorisation
On dit qu’une grammaire G nécessite une factorisation à gauche si G
comporte les productions suivantes : A→ αβ1|αβ2 . G est non LL(1)
(Démontrer cette propriété).

Factorisatin de G
- La grammaire G qui comporte les productions A→ αβ1|αβ2 peut être transformée
en LL(1) par factorisation à gauche: A→ α A’ , A’ → β1|β2.

132
Analyse Syntaxique
 Analyse prédictive: Factorisation
Grammaire nécessite une Substitution
On dit qu’une grammaire G nécessite une substitution à gauche si G
comporte les productions suivantes : A→B|C, B→wX|α1, C→wY|α2 . G est
non LL(1) (Démontrer cette propriété).

Substitution de G
- La grammaire G comportant les productions A→B|C, B→wX|α1, C→wY|α2 peut
être transformée en LL(1) par la substitution à gauche: A→wA’|α1|α2 ,A’ →X|Y .

133

Vous aimerez peut-être aussi