TD3 : Transformation & automates à pile—Correction
Bingzhi LI ([email protected]) 2 octobre 2020
1 Transformations de Grammaires
1. Soit le langageL1 sur le vocabulaireV = {l’,homme,ours,qui,a,vu} formé de l’ensemble des phrases finies de la formel’homme qui a vu l’ours,l’homme qui a vu l’homme qui a vu l’ours,l’homme qui a vu l’homme qui a vu . . . qui a vu l’ours.
(a) Donner une grammaire algébrique (context-free) engendrant L1. Solution: S → NP Rel
NP → l’ homme
Rel → qui a vu NP Rel
| qui a vu l’ ours
(b) Mettre en forme normale de Chomsky la grammaire obtenue.
Solution: La grammaire est déja propre (-libre, pas de symboles inutiles, pas de productions singulières).
On garde la règle S→N P Rel et on ajoute : N P → Xl0 Xhomme
Rel → Xqui A1 A1 → Xa A2
A2 → Xvu A3 A3 → N P Rel Rel → Xqui B1
B1 → Xa B2 B2 → Xvu B3 B3 → Xl0 Xours
Xl0 → l’
Xhomme → homme Xours → ours Xqui → qui
Xa → a
Xvu → vu
2. Transformer la grammaire suivante en grammaire sans règles singulières : S→AB|A; A→aB|bA|aSb; B →S|b
Solution: S→AB|aB |bA|aSb; A→aB |bA|aSb; B →AB|aB|bA|aSb|b
1
3. Soit la grammaire suivante : S −→ aSbS |bSaS |ε. Appliquer l’algorithme vu en cours pour éliminer des productionsε.
Solution: S0 → S |ε
S → aSbS|bSaS|ab|ba|aSb|abS |bSa|baS
2 Automates à pile
4. Proposer un automate à pile déterministe pourL2 ={anbn |n≥0}.
Solution:
Table de transition :
(1,1) a, →A (1,2) b, A→ (2,2) b, A→
Graphe :
1
start 2
a, →A
b, A→ε
b, A→ε
Réflexion: Nous devons utiliser quel type d’acceptation ici ?
5. Trouver un automate à pile qui accepte le langage{ww / w ∈ {a, b}∗}, oùwdésigne le mot miroir dew.
6. Proposer un automate à pile pour la grammaire algébrique suivante : S → a|aa |b|bb|aSa |bSb
Solution: Principe : on empileaen lisanta,b en lisantb, puis on transitionne par une des 4 règles lexicales dans un état final où l’on dépileaen lisanta,ben lisantb. Ici on a besoin d’une acceptation mixte : être dans l’état final etavoir une pile vide.
Remarque : pour que Y puisse représenter n’importe quel symbole, on utilise le fait que l’alphabet d’entrée et l’alphabet de pile ne sont pas nécessairement disjoints. Par exemple, Y, P →Y P est une simplification notationnelle d’un ensemble de transitions y1, p1 → y1p1, y1, p2 → y1p2... pour tout y∈X∩Γ, p∈Γ.
Page 2
1 start
2
3 Y, P →Y P 4 a, P →P
b, P →P
a, P →P
ε, P →P
b, P →P
ε, P →P
Y, Y →ε
7. Proposer un automate à pile pourL1 ={w∈ {a, b}∗ | |w|a =|w|b}(tout mot contenant autant de aque deb).
Solution: Principe : à chaquealu, unb est empilé, et vice-versa. Mêmes remarques que précédem-
ment.
1 start
a, P →bP
b, P →aP
a, a →ε b, b →ε
8. Donner l’automate de la grammaire ETF : G=
E→ E+T |T T → T∗F |F F → (E) |a
Solution: Principe : on commence par empiler l’axiome, et on ajoute autant de transitions-εbou- clant sur q2 qu’il y a de règles, chacune empilant la partie droite de la règle à condition que la partie gauche soit en haut de pile. Ceci requiert donc que l’alphabet de pile comprenne et l’alphabet d’entrée et l’alphabet des non-terminaux de la grammaire (Γ =X∪V ∪ {Z0}). Ensuite, on rajoute autant de transitions qu’il y a de symboles terminaux, en bouclant toujours sur q2, chacune dépilant un charactère à la fois lu et en haut de pile. On donne enfin un état d’acceptation accessible par transition-εà condition que la pile soit vide.
Page 3
1
start 2 3
ε, Z0→EZ0
ε,E →E+T ε,E →T ε,T →T ∗F ε,T →F ε,F →(E) ε,F →a
a,a →ε +,+ →ε
∗,∗ →ε (,( →ε ),) →ε
ε, Z0 →ε
9. Donner les états de la pile et l’arbre pour reconnaître le mota+a∗a.
Page 4