Vous êtes sur la page 1sur 4

Faculté des Sciences de Monastir Techniques de Compilation

Département d'Informatique LFI2


AU : 2019/2020

Activité compilation (Correction)


1. La grammaire G est hors-contexte (type 2) car toutes les règles
sont écrites sous la forme: α → β avec α Є VN ; et β Є (VN U VT )*
Autrement dit, la partie gauche de toutes les règles est formée seulement
des symboles non terminaux tandis que la partie droite contient à la fois des
symboles terminaux et non terminaux.

Cette grammaire n’est pas régulière vu que les règles A SB et B


;SB | ) contiennent dans leurs parties droites deux symboles non-
terminaux .

2.
 Premier (S) ={ ( , a }
 D’après la règle A SB on peut conclure que :
Premier (A) =Premier (S) ={ ( , a }
 Premier (B) ={ ; , ) }
 Les règles A SB et B ;SB | ) donnent :
Premier (B) Suivant (S), d’où :
Suivant (S) ={Premier (B),#} ={ ;, ),#}
 La règle S (A donne :
Suivant (A) =Suivant(S) ={ ;, ),#}
 La règle A SB donne :
Suivant (B) =Suivant (A) ={ ;, ),#}
3. La table d’analyse prédictive de G :

( a ; )
S S  (A Sa
A A  SB A  SB
B B  ;SB B)

-2-
Faculté des Sciences de Monastir Techniques de Compilation
Département d'Informatique LFI2
AU : 2019/2020

4. La grammaire G est considérée comme LL(1) :


Justification1 : D’une part, on n’a pas des règles type-. D’autre part, pour
tout symbole non-terminal possédant plusieurs règles de dérivation on peut
prouver que :
Si X et X alors Premier() ≠ Premier().
Justification2 : La table prédictive n’est pas multi définie c-à-d chaque case
est occupée par au maximum une seule règle.

5. Indication : Vous devez préciser quelle règle avez vous utilisée pour chaue
dérivation (en passant d’un niveau à un autre). Deux solutions sont
acceptées :
 Analyse du mot (a ;a ;a)
SOLUTION 1 :

Le mot (a ;a ;a) est syntaxiquement correct


-3-
Faculté des Sciences de Monastir Techniques de Compilation
Département d'Informatique LFI2
AU : 2019/2020

SOLUTION 2 :

Entrée sortie
#S (a ;a ;a)# S->(A
#A( (a ;a ;a)#
#A a ;a ;a)# A->SB
#BS a ;a ;a)# S->a
#Ba a ;a ;a)#
#B ;a ;a)# B-> ;SB
#BS ; ;a ;a)#
#BS a ;a)# S->a
#Ba a ;a)#
#B ;a)# B-> ;SB
#BS ; ;a)#
#BS a)# S->a
#Ba a )#
#B )# B->)
#) )
# # ACCEPTER

 Analyse du mot ((a ;a) ;a)

SOLUTION 1 :

Le mot ((a ;a) ;a) est syntaxiquement correct

-4-
Faculté des Sciences de Monastir Techniques de Compilation
Département d'Informatique LFI2
AU : 2019/2020

SOLUTION 2 :

entrée sortie
#S ((a ;a) ;a)# S->(A
#A( ((a ;a );a)#
#A (a ;a) ;a)# A->SB
#BS (a ;a );a)# S->(A
#BA( (a ;a) ;a)#
#BA a ;a);a)# A-> SB
#BBS ; a ; a) ;a)# Sa
#BBa a ;a) ;a)#
#BB ;a) ;a)# B ;SB
#BBS ; ;a);a)#
#BBS a);a)# Sa
#BBa a );a)#
#BB );a)# B)
#B) );a)#
#B ;a)# B ;SB
#BS ; ;a) #
#BS a) # Sa
#Ba a )#
#B )# B)
#) )#
# # ACCEPTER

-5-