You are on page 1of 8

Université Sidi Mohmed Ben Abdellah

Faculté polydisciplinaire de Taza Compilation

Correction de la série N°3


Exercice 1
1- ID → Lettre Suite_de_symbole
Suite_de_symbole → Symbole Suite_de_symbole | ε
Symbole → Lettre | Chiffre | _
Lettre → a|b|c|….|z|A|B|….|Z
Chifre →0|1|2|…..|9

2-
2-1- Constante_Chaine →'Suite_de_caractère'
Suite_de_caractère → Caractère Suite_de_caractère | ε
Caractère → Lettre|Chiffre|"|@|.....

lettre|chiffre|"|@|.....

' '
2-2- q0 q1 q2

2-3- CH1= 'SMI_S5' , CH2= 'L"examen de compilation' , CH3= 'Rapport de TP'


2-4- CT1= 200 , CT2=0,12

Exercice 2
1- Le langage génère des expressions arithmétiques.
2- Calcul des deux ensembles First et Follow :
Ensemble First:
First(E)=First(TE‘)=First(T)={(,nbr}
First(TE’)=First(T)={ ( ,nbr }
First(T)=First(FT’)=First(F)={( , nbr}
First(FT’)=First(F)={( , nbr}
First(F)={ ( ,nbr } (ε n’appartient pas à {( , nbr})
First(E’)= First(+TE’)={ + } , et puisque E’→ε alors First(E’)={+ , ε}
First(T’)={ *,ε }

Ensemble Follow:
Follow(E)={ $ , ) }
Follow(E’)=Follow(E)= { $ , ) }
Follow(T)=First(E’\{ε })={ + }, et puisque ε appartient au First (E’)
Follow(T)={+} U Follow(E)={ +,$,) }
Follow(T’)=Follow(T)={ +,$,) }
Follow(F)={ +,*,$,) }
Pr. A. Saaidi 1 Année universitaire 2018/2019
Université Sidi Mohmed Ben Abdellah
Faculté polydisciplinaire de Taza Compilation

Exercice 3
1- G0 est non de type LL(1) car First(aF) ∩First(aG) ≠ Ø.

2- La grammaire G1 non récursive à gauche est :


S →aE|bF
E→bE|ε
F→aF|aG
G→dG’
G’→cG’|ε

3- La grammaire G2 factorisée à gauche est :


S →aE|bF
E→bE|ε
F→aF’
F’→F|G
G→dG’
G’→cG’|ε

4- First et Follow :
L’ensemble First est :
First(S)= {a,b }
First(E)={b,ε }
First(F)={a}
First(F’)=First(F)∪First(G)={a,d}
First(G)={d}
First(G’)={c, ε }

L’ensemble Follow est :


Follow(S)={$}
Follow(E)={$}
Follow(F)={$}∪Follow(F’)={$}
Follow(F’)=Follow(F)={$}
Follow(G)=Follow(F’)={$}
Follow(G’)=Follow(G)={$}

5- First(aE)∩First(bF)=Ø
E→bE| ε , on a Follow(E)∩First(bE)= Ø
F’→F|G , on a First(F) ∩First(G)= Ø
G’→cG| ε , on a Follow(G’) ∩First(cG)= Ø

Pr. A. Saaidi 2 Année universitaire 2018/2019


Université Sidi Mohmed Ben Abdellah
Faculté polydisciplinaire de Taza Compilation

Exercice 4
1- Numéroter les règles de production et construire la table d’analyse:
1: E→TE’, 2: E’→+TE’, 3: E’→ε, 4 : T→FT’, 5: T’→*FT’, 6: T’→ε, 7 : F→(E),
8:F→nbr.

Ensemble First:
First(E)=First(TE‘)=First(T)={(,nbr}
First(TE’)=First(T)={ ( ,nbr }
First(T)=First(FT’)=First(F)={( , nbr}
First(FT’)=First(F)={( , nbr}
First(F)={ ( ,nbr } (ε n’appartient pas à {( , nbr})
First(E’)= First(+TE’)={ + } , et puisque E’→ε alors First(E’)={+ , ε}
First(T’)={ *,ε }

Ensemble Follow:
Follow(E)={ $ , ) }
Follow(E’)=Follow(E)= { $ , ) }
Follow(T)=First(E’\{ε })={ + }, et puisque ε appartient au First (E’)
Follow(T)={+} U Follow(E)={ +,$,) }
Follow(T’)=Follow(T)={ +,$,) }
Follow(F)={ +,*,$,) }

+ * ( ) nbr $
E -1 -1 1 -1 1 -1
E’ 2 -1 -1 3 -1 3
T -1 -1 4 -1 4 -1
T’ 6 5 -1 6 -1 6
F -1 -1 7 -1 8 -1

2- Pour CH1= nbr*(nbr+nbr)$

Pile Tampon Action


E$ nbr*(nbr+nbr)$ E→TE’
TE’$ nbr*(nbr+nbr)$ T→FT’
FT’E’$ nbr*(nbr+nbr)$ F→nbr
nbr T’E’$ nbr*(nbr+nbr)$ Dépiler et avancer
T’E’$ *(nbr+nbr)$ T’→*FT’
*FT’E’$ *(nbr+nbr)$ Dépiler et avancer
FT’E’$ (nbr+nbr)$ F→(E)
(E)T’E’$ (nbr+nbr)$ Dépiler et avancer
E)T’E’$ nbr+nbr)$ E→TE’
TE’)T’E’$ nbr+nbr)$ T→FT’
FT’E’)T’E’$ nbr+nbr)$ F→nbr
nbr T’E’)T’E’$ nbr+nbr)$ Dépiler et avancer
T’E’)T’E’$ +nbr)$ T’→ε
Pr. A. Saaidi 3 Année universitaire 2018/2019
Université Sidi Mohmed Ben Abdellah
Faculté polydisciplinaire de Taza Compilation

E’)T’E’$ +nbr)$ E’→+TE’


+TE’)T’E’$ +nbr)$ Dépiler et avancer
FT’E’)T’E’$ nbr)$ F→nbr
nbr T’E’)T’E’$ nbr)$ Dépiler et avancer
T’E’)T’E’$ )$ T’→ε
E’)T’E’$ )$ E’→ε
)T’E’$ )$ Dépiler et avancer
T’E’$ $ T’→ε
E’$ $ E’→ε
$ $ succès

Pour CH=nbr nbr+nbr$ :

Pile Tampon Action


E$ nbr nbr+nbr$ E→TE’
T E’$ nbr nbr+nbr$ T→FT’
F T’E’$ nbr nbr+nbr$ F→nbr
nbr T’E’$ nbr nbr+nbr$ Dépiler et avancer
T’E’$ nbr+nbr$ Echec

3- Modifier la table d’analyse : Pour toute case de la table d’analyse TA[N][t]= Erreur; Si
t∈Synch(N) alors TA[N][t]=Synch;
+ * ( ) nbr $
E -1 -1 1 Synch 1 Synch
E’ 2 -1 -1 3 -1 3
T Synch -1 4 Synch 4 Synch
T’ 6 5 -1 6 -1 6
F Synch Synch 7 Synch 8 Synch

Pile Tampon Action


E$ nbrnbr+nbr$ E→TE’
TE’$ nbrnbr+nbr$ T→FT’
FT’E’$ nbrnbr+nbr$ F→nbr
nbrT’E’$ nbrnbr+nbr$ Dépiler et avancer
T’E’$ nbr+nbr$ Avancer (nbr inattendu)
T’E’$ +nbr$ T’→ε
E’$ +nbr$ E’→+TE’
+TE’$ +nbr$ Dépiler et avancer
TE’$ nbr$ T→FT’
FT’E’$ nbr$ F→nbr
nbr T’E’$ nbr$ Dépiler et avancer
T’E’$ $ T’→ε
E’$ $ E’→ε
$ $ Afficher le message d’erreur

Pr. A. Saaidi 4 Année universitaire 2018/2019


Université Sidi Mohmed Ben Abdellah
Faculté polydisciplinaire de Taza Compilation

Exercice 5
1- On a First(G = D)∩First(D) ≠ Ø donc A n’est pas de type LL(1).
2- et -3

4- Table d’analyse

Actions Successeur
= * i $ S D G
0 d3 d4 1 2 5
1 Succès
2 r2
3 d3 d4 6 7
4 r4 r4
5 d8 ,r5 r5
6 r3 r3
Conflit 7 r5 r5
8 d3 d4 9 7
9 r1

Avec : 1) S→ G=D , 2) S→ D , 3) G → *D , 4) G→i , 5) D→G

Pr. A. Saaidi 5 Année universitaire 2018/2019


Université Sidi Mohmed Ben Abdellah
Faculté polydisciplinaire de Taza Compilation

5- On constate que dans la table d’analyse de la question précédente :


Action[5][=] == d8 et Action[5][=] == r5 , donc l’algorithme SLR(1) est incapable
de gérer cette grammaire.

Exercice 6
1- L’ensemble de collection C
I0 = fermeture{[S’→.S , $]} = { [S’→.S , $] ; [S→.G=D , $] ; [S→.D , $] ;
[G→.*D,=] ; [G→.i , =] ; [D→.G , $] ; [G→.*D , $] ; [G→.i , $]}.
I1 = transition(I0,S) = fermeture{[S’→S. ,$]}={[S’→S. ,$]}.
I2 = transition(I0,G) = fermeture{[S→G. = D , $] ; [D→G. , $]} = {[S→G. = D , $] ;
[D→G. , $]}.
I3 = transition(I0,D) = fermeture{[S→D. , $]} = {[S→D. , $]}.
I4 = transition(I0,*) = fermeture{[G→*.D , $] ; [G→*.D , =]} = {[G→*.D , $] ;
[G→*.D , =] ; [D→.G , $] ; [D→.G , =] ; [G→.*D , $] ; [G→.*D , =] ;
[G→.i,$] ; [G→.i , =]}
I5 = transition(I0,i) = Fermeture{[G→i. , $] ; [G→i. , =]} = {[G→i. , $] ; [G→i. , =]}.
I6 = transition(I2,=) = Fermeture{[S→G=.D , $]} = {[S→G=.D , $] ; [D→.G , $] ;
[G→.*D , $] ; [G→.i , $]}.
I7 = transition(I4,D) = Fermeture{[G→*D. , $] ; [G→*D. , =]} = {[G→*D. , $] ;
[G→*D. , =]}.
I8 = transition(I4,G) = Fermeture{[D→G. , $] ; [D→G. , =]} = {[D→G.,$] ;
[D→G.,=]}.
I4 = transition(I4,*).
I5 = transition(I4,i).
I9 = transition(I6,D)= Fermeture{[S→G=D. , $]} = {[S→G=D. , $]}.
I10 = transition(I6,*) = Fermeture{[G→*.D , $]} = {[G→*.D , $] ; [D→.G , $];
{[G→.*D , $] ; [G→.i , $]}
I11 = transition(I6,G) = Fermeture{[D→G. , $]} = {[D→G. , $]}.
I12 = transition(I6,i) = Fermeture{[G→i. , $]} = {[G→i. , $]}.
I13 = transition(I10,D) = Fermeture{[G→*D. , $]} = {[G→*D. , $]}.
I11 = transition(I10,G).
I10 = transition(I10,*).
I12 = transition(I10,i).

Pr. A. Saaidi 6 Année universitaire 2018/2019


Université Sidi Mohmed Ben Abdellah
Faculté polydisciplinaire de Taza Compilation

2- AFD

3- Table d’analyse : On numérote les règles de productions:


1) S→G = D , 2) S→D , 3) G→*D , 4) G→i , 5) D→G
ACTION SUCCESSEUR
= * i $ S D G
0 d4 d5 1 3 2
1 succ
2 d6 r5
3 r2
4 d4 d5 7 8
5 r4 r4
6 d10 d12 9 11
7 r3 r3
8 r5 r5
9 r1
10 d10 d12 13 11
11 r5
12 r4
13 r3
Pr. A. Saaidi 7 Année universitaire 2018/2019
Université Sidi Mohmed Ben Abdellah
Faculté polydisciplinaire de Taza Compilation

4- On constate que le conflit qui était dans le SLR(1) à l’état 5 dans l’exercice 5 est
levé par l’analyseur LR(1) à l’état 2 de cet exercice.

5- Analyse des deux chaines : i=i et ii


Pour i=i :

Pile Tampon Action


I0$ i=i$ d5
I5 I0$ =i$ r4
I2 I0$ =i$ d6
I6 I2 I0$ i$ d12
I12 I6 I2 I0$ $ r4
I11 I6 I2 I0$ $ r5
I9 I6 I2 I0$ $ r1
I1I0$ $ succés

Pour ii :

Pile Tampon Action


I0$ ii$ d5
I5I0$ i$ erreur

Pr. A. Saaidi 8 Année universitaire 2018/2019

You might also like