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

  • Maths
    566 mots | 3 pages
  • corrigé listoshpere oceanique
    1020 mots | 5 pages
  • Annales concours
    1596 mots | 7 pages
  • informaticien
    387 mots | 2 pages
  • Dissert'
    797 mots | 4 pages
  • Fonctions de la variable réelle
    21308 mots | 86 pages
  • Informatique
    262 mots | 2 pages
  • Matrices
    3802 mots | 16 pages
  • Dissertation
    546 mots | 3 pages
  • informatique
    8687 mots | 35 pages
  • Etre ou ne pas etre
    383 mots | 2 pages
  • Informaticien
    972 mots | 4 pages
  • Informatique
    10161 mots | 41 pages
  • informatiques
    306 mots | 2 pages
  • Serie structure donnée simple
    1267 mots | 6 pages