Correction td2
Correction td2
Correction td2
Classes : 3LFIAG
Exercice 1:
1- La grammaire est non ambigu, en effet pour n'importe quel mot w L(G) il y a un unique arbre
syntaxique, ceci est d au fait qu'on a tabli une certaine rgle de priorit et de prcdence pour garantir
l'unicit de l'arbre syntaxique de chaque mot et par consquence la non ambigut de la grammaire.
()
I. (s, , ) (p, S)
II. (p, , A) (p, ) avec A R cd si A est au sommet de la pile on peut le remplacer par .
III. (p, , ) (p, ) cd si le sommet de la pile concide avec le symbole lire de la chaine, on
le
Consomme et on le dpile.
1
K={s, p} ; = V ; s=tat initial ; F= {p}
3- le sommet de la pile
4- M1 est non dterministe ( trouver une configuration ou on peut appliquer plus qu'une transition):
*A la configuration de l'tape 2 il ya deux transitions applicables (tx 2 et tx3)
*De mme l'tape 4 (tx 4 et tx 5 applicables).
5-
{ E E+T sont deux rgles rcursives gauche ( A*A / un ensemble de
terminaux)
T T*F
2
2. E' +TE' rcursivit gauche 6. (p, , T') (p,*FT')
3. E'
4. T FT' limination de la 7. (p, , T') (p, )
5. T' *FT' rcursivit gauche
6. T' 8. (p, , F) (p, (E))
7. F( E)
8. F xA 9. (p, , F) (p, xA)
9. A 1 factorisation
10. A 2 10. (p, , A) (p, 1)
8-
3
P $E'T'F x1$ 9 F xA
P $E'T'Ax x1$ 17 Dpiler
P $E'T'A 1$ 10 A 1
P $E'T'1 1$ 18 Dpiler
P $E'T' $ 7 T'
P $E' $ 4 E'
P $ $
Exercice 3:
S Ab | a |AA
A Sa | Ac | B
BSd
1. On choisit un ordre : S, A, B : S peut contenir les symboles A, B mais, B ne doit pas contenir ni A, ni S.
Algo : (voir cours) ; on procde par remplacement, puis limination de la rcursivit immdiate pour
chaque symbole,
Pour le symbole A :
Aaa
AAAa
AAba AaaA|BA
Aaa AbaA|AaA|cA
AAAa A
AAc
AB
4
Pour le symbole B :
Remplacement de S
BAAd BaaAbd|BAbd
Bad BaaAAd|BAAd
Bad
Elimination de la
recursivit immdiate
de B
BaaAbdB|aaAAdB|adB
BAbdB|AAdB
S Ab | a |AA
AaaA|BA
AbaA|AaA|cA
BaaAbdB|aaAAdB|adB
BAbdB|AAdB
2. Factorisation :
S Ab |AA S AD
S a D b|A
5
S a
AaaA|BA
AbaA|AaA|cA|
BaaAbdB|aaAAdB|adB B aE B aE
F bdB|AdB
BAbdB|AAdB| B'A'F |
On obtient:
G' : S AD | a
Db|A
AaaA|BA
AbaA|AaA|cA|
B aE
E aA'F | dB'
F bdB|AdB
B'A'F |
3. Oui, la grammaire G' est LL(1) car elle n'est pas recursive gauche.
Exercice 4:
-notation prfixe: + 2 3
Notation postfixe: 2 3 +
6
3) Elimination de la rcursivit:
G1:
E nb E'
E' E op E'
E'
Premier(E)={nb} suivant(E)={op, $}
Premier(E') ={nb,} suivant(E') ={op,$ }
Table d'analyse:
nb op $
E E nb E'
E' E' E op E' E' E'
G1 est LL(1):puisque chaque case de la table d'analyse contient une seule rgle.
w= nb nb op nb op
7
4) Construction de l'arbre syntaxique du mot w en ralisant la squence de sortie "action" de l'analyse
syntaxique. Selon la table d'analyse on obtient la squence 1,2,3.8.
nb E'
E op E'
nb E' E op E'
nb E'
Exercice 2:
1. Pour montrer que G est ambigu, il suffit d'exhiber un mot de L(G) ayant deux arbres de
drivation, exemple w= id id vrai
B B
B B
B B
8
B B vrai
Id B B id B
B vrai id
id
2. Pour liminer l'ambigut il faut tenir compte de la priorit des oprateurs et de l'associativit gauche:
Priorit descendante: () , , , ,
R': B BE | E
E ET | T
T TR | R
Rq:
Pour obtenir une grammaire qui n'est pas ambigu, on doit effectuer des choix de priorits et
d'associativits.
Choix de priorit: () est plus prioritaire que , est plus prioritaire que ,etc