Académique Documents
Professionnel Documents
Culture Documents
1
III.6. Analyse syntaxique par décalage
réduction
Considérons la grammaire avec les règles de production suivantes:
S aABe
A Abc | b
Bd
La phrase abbcde peut être réduite vers S par les étapes suivantes:
abbcde abbcde
aAbcde aAbcde
aAde aAde
aABe aABe
S S
Ces réductions élaborent en sens inverse la dérivation droite suivante:
2
III.6. Analyse syntaxique par décalage
réduction
Manches
Informellement, un « manche » d’une chaine est une sous-chaine qui correspond à la
partie droite d’une production et dont la réduction vers le non terminal de la
partie gauche de cette production représente une étape le long de la dérivation
droite inverse.
3
III.6. Analyse syntaxique par décalage
réduction
Exemple
Considérons la grammaire suivante:
EE+E
EE*E
E (E)
E id
4
III.6. Analyse syntaxique par décalage
réduction
La grammaire est ambiguë car il y a une autre dérivation droite pour la même chaine:
EE+E
EE*E
E (E)
E id
5
III.6. Analyse syntaxique par décalage
réduction
6
III.6. Analyse syntaxique par décalage
réduction
Implantation à l’aide d’une pile de l’analyse par
décalage-réduction
7
III.6. Analyse syntaxique par décalage
réduction
Id + id * id $ Tampon
Configuration
initiale
Tête de L/E
$
Pile
Id + id * id $ Tampon
Configuration
finale
S
Tête de L/E
$
Pile 8
III.6. Analyse syntaxique par décalage
réduction
PILE ENTREE SORTIE
$ Id1 + id2 * id3 $ Décaler
$id1 + id2 * id3 $ Réduire par Eid
$E + id2 * id3 $ Décaler
$E+ id2 * id3 $ Décaler
$E+ id2 * id3 $ Réduire par E id
$E + E * Id3 $ Décaler
$E + E * id3 $ Décaler
$E + E * id3 $ Réduire par E id
$E + E * E $ Réduire par E E*E
$E + E $ Réduire par E E+E
$E $ Accepter
9
III.6. Analyse syntaxique par décalage
réduction
Les opérations de base l’analyseur:
(1) décaler, (2) réduire, (3) accepter et (4) erreur.
10
III.6. Analyse syntaxique par décalage
réduction
Algorithme par Décalage/Réduction
(Shift/Reduce)
(1) décaler, (2) réduire, (3) accepter et (4) erreur.