informatique

Pages: 2 (471 mots) Publié le: 15 juin 2014
Analyseur Syntaxique LL(1)
Par N. Chenfour

Soit la grammaire des expressions arithmétique suivante :
1.
E
à T E’
2.
E’ à + T E’
3.
E’ à - T E’
4.
E’ à e
5.
T
à F T’
6.
T’ à * F T’7.
T’ à / F T’
8.
T’ à e
9.
F
à id
10. F
à nb
11. F
à ( E )
On note VT : le Vocabulaire Terminal. Pour la grammaire précédente :
VT = { + , - , * , / , id , nb , ( , ) }
On note VN : leVocabulaire Non Terminal. Pour la grammaire précédente :
VN = { E , E’ , T , T’ , F }
Le vocabulaire du langage noté V est = VT ∪ VN.

1. Calcul de First :

L’algorithme First peut être appliquéà une chaîne χ appartenant au vocabulaire V du
langage.
First ( χ) {
if ( χ ∈ VT ) {
F = { χ } ;
}
else if ( χ ∈ VN ) {
F = {} ;
Pour toute production [ χ à α ] {
F = F ∪ First(α) ;
}
}else if ( χ == X1 X2 X3 ... Xn) {
i = 1;
while ( (i < n) && (e ∈ First(X i)) )
F = F ∪ First(Xi);
i++;
}
F = F ∪ First(Xi);
}
return F;
}

N. Chenfour

1

2. Calcul de Follow :L’algorithme Follow ne peut être appliqué qu’à un élément X du vocabulaire non terminal
VN.
Follow (X) {
F = {} ;
if ( X est = à l’axiome de la grammaire ) {
F = { $ } ;
}
Pour toute production [ A à α Xβ ] {
F = F ∪ First(β) \ {e} ;
if ( (β == e) || (e ∈ First(β)) ) {
F = F ∪ Follow(A) ;
}
}
}
Exemple :
First

Follow

E

id , nb , (

$,)

E’

+,-,e

$,)

T

id , nb , (+,-,$,)

T’

*,/,e

+,-,$,)

F

id , nb , (

*,/,+,-,$,)

N. Chenfour

2

3. Calcul de la table d’analyse LL(1) :
L’algorithme consiste à répartir les différentes productions sur lescellules de la table
d’analyse que nous notons TA.
RemplirTableD’Anlyse (X) {
Pour toute production [ A à α ]) {
Pour tout élément a ∈ (First(α) \ {e}) {
TA[A][a] = [ A à α ];
}
if (α == e ||e ∈ First(α)) {
Pour tout élément b ∈ (Follow(A)) {
TA[A][b] = [ A à α ];
}
}
}
}

Exemple :

TA

+

-

*

/

id

E’

2

1

8

8

6

5

3

10

4

8

5...
Lire le document complet

Veuillez vous inscrire pour avoir accès au document.

Vous pouvez également trouver ces documents utiles

  • informatique
  • informatique
  • Informatique
  • Informatique
  • informatique
  • Informatique
  • Informatique
  • Informatique

Devenez membre d'Etudier

Inscrivez-vous
c'est gratuit !