informatique

471 mots 2 pages
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 : le Vocabulaire 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 les cellules 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

en relation

  • Informatique
    253 mots | 2 pages
  • informatique
    3518 mots | 15 pages
  • Informatique
    7523 mots | 31 pages
  • Informatique
    7385 mots | 30 pages
  • Informatique
    1063 mots | 5 pages
  • Informatique
    11474 mots | 46 pages
  • Informatique
    2716 mots | 11 pages
  • Informatique
    2785 mots | 12 pages
  • Informatique
    8879 mots | 36 pages
  • Informatique
    6207 mots | 25 pages