La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

IFT313 Introduction aux langage formels Francis Bisson Département d’informatique Université de Sherbrooke Lab 7 Analyses LR(1) et LALR(1)

Présentations similaires


Présentation au sujet: "IFT313 Introduction aux langage formels Francis Bisson Département d’informatique Université de Sherbrooke Lab 7 Analyses LR(1) et LALR(1)"— Transcription de la présentation:

1 IFT313 Introduction aux langage formels Francis Bisson Département d’informatique Université de Sherbrooke Lab 7 Analyses LR(1) et LALR(1)

2 EXERCICE 1 IFT3132

3 IFT313/IFT451© Froduald Kabanza3 Exercice 1 Étant donné la grammaire G= ({S}, {i, e, o}, R, S), avec R = { 1. S → iSeS 2. S → iS 3. S → o } a.Donnez l’AFD LR(1). b.Donner la table d’analyse LR(1). c.Est-ce une grammaire LR(1)? d.Donnez l’AFD LALR(1). e.Donnez la table d’analyse LALR(1). f.Est-ce une grammaire LALR(1)? Note: c’est la grammaire approximant « if then else » vue au Lab 6.

4 IFT313/IFT451© Froduald Kabanza4 1. a-b AFD LR(1) et Table d’analyse LR(1) actionsgoto 1.c. La grammaire n’est pas LR(1) parce qu’il y a un conflit shift/reduce dans l’entrée [9,e] de table LR(1) 0 S’ . S, $ S . iSeS, $ S . iS, $ S . o, $ 1 S’  S., $ S ieo$S 0s2s31 1acc 2s8s74 3r3 4 s5 r2 5s2s76 6r1 7r3 8s8s79 9 r2 s10 r1 10s8s711 r1 1. S  iSeS 2. S  iS 3. S  o 3 S  o., $ o 2 S  i. SeS, $ S  i. S, $ S . iSeS, $/e S . iS, $/e S . o, $/e 5 S  iSe. S, $ S . iSeS, $ S . iS, $ S . o, $ 4 S  iS. eS, $ S  iS., $ i S e 6 S  iSeS., $ 7 S  o., $/e o 8 S  i. SeS, $/e S  i. S, $/e S . iSeS, $/e S . iS, $/e S . o, $/e S 7 i i 9 S  iS. eS, $/e S  iS., $/e S o i 10 S  iSe. S, $/e S . iSeS, $/e S . iS, $/e S . o, $/e 11 S  iSeS., $/e S e i o o

5 IFT313/IFT451© Froduald Kabanza5 1.d-e AFD LALR(1) et Table d’analyse LALR(1) actions goto 1.f. La grammaire n’est pas LR(1) parce qu’il y a un conflit shift/reduce dans l’entrée [4,e] de table LALR(1) 0 S’ . S, $ S . iSeS, $ S . iS, $ S . o, $ 1 S’  S., $ S ieo$S 0s2s31 1 acc 2s2s34 3r3 4 r2 s5 r2 5s2s36 6r1 1. S  iSeS 2. S  iS 3. S  o o 2 S  i. SeS, $/e S . iSeS, $/e S . iS, $/e S . o, $/e 5 S  iSe. S, $/e S . iSeS, $/e S . iS, $/e S . o, $/e 4 S  iS. eS, $/e S  iS., $/e i S e 6 S  iSeS., $/e 3 S  o., $/e o o S i i

6 EXERCICE 2 IFT3136

7 7 Exercice 2 Soit la grammaire G= ({S, E}, { id, +, ), ( }, R, S), avec R = { 1. S → E 2. E → id 3. E → id (E) 4. E → E + id } Les numéros a) à d) sont à faire à domicile. a.Donnez l’AFD LR(0) de la grammaire. b.Donnez la table d’analyse LR(0). c.Est-ce une grammaire LR(0)? Expliquez. d.Donnez la table d’analyse SLR(1). e.Es-ce une grammaire SLR(1) ? Expliquez. f.Donnez l’AFD LR(1). g.Est-ce une grammaire LR(1)? h.Donnez l’AFD LALR(1). i.Donnez la table d’analyse LALR(1). j.Est-ce une grammaire LALR(1)?

8 IFT a. AFD LR(0). Closure([S’  S]) ={[S’  S], [S  E], [E  id], [E  id(E)], [E  E+id]} Closure([S’  S  ]) ={[S’  S  ]} =Closure({[S  E  ], [E  E  +id]}) ={[S  E  ], [E  E  +id]} =Closure({[E  id  ], [E  id  (E)]}) ={[E  id  ], [E  id  (E)]} =Closure([E  E+  id]) ={[E  E+  id]} 4 =Closure([E  id(  E)]) ={[E  id(  E)],[E  id], [E  id(E)],[E  E+id]} 5 Goto(4, id) =Closure([E  E+id  ]) ={[E  E+id  ]} 6 =Closure({[E  id(E  )], [E  E  +id]}) ={[E  id(E  )], [E  E  +id]} 7 =Closure([E  id(E)  ]) ={[E  id(E)  ]} 8 s E + ( id E ) +

9 IFT b Table d’analyse LR(0) id+()$SE 0s312 1acc 2r1 s4 r1 3r2 s5 r2 4s6 5s37 6r4 7s4s8 8r3 2.c Ce n’est pas une grammaire LR(0) parce que la table d’analyse contient des conflits dans les entrées [2,+] et [3,(]. goto action/goto

10 IFT d Table d’analyse SLR(1) id+()$SE 0s312 1acc 2s4r1 3r2s5r2 4s6 5s37 6r4 7s4s8 8r3 2.e C’est une grammaire SLR(1) parce que la table d’analyse SLR(1) n’a pas de conflit. goto action/goto

11 IFT f. AFD LR(1) Closure([S’  S;{$}]) ={[S’  S;{$}], [S  E;{$}], [E  id;{$,+}], [E  id(E) ;{$,+}], [E  E+id;{$,+}]} Closure([S’  S  ;{$}]) ={[S’  S  ;{$}]} Closure({[S  E  ;{$}], [E  E  +id;{$,+}]}) ={[S  E  ;{$}], [E  E  +id;{$,+}]} Closure({[E  id  ;{$,+}], [E  id  (E) ;{$,+}]}) ={[E  id  ;{$,+}], [E  id  (E) ;{$,+}]} Closure([E  E+  id;{$,+}]) ={[E  E+  id;{$,+}]} 4 Closure([E  id(  E);{$,+}]) ={[E  id(  E) {$,+}], [E  id;{), +}], [E  id(E);{), +}], [E  E+id;{), +}]} 5 Closure([E  E+id  ;{$,+}]) ={[E  E+id  ;{$,+}]} 6 Closure({[E  id(E  );{$,+}], [E  E  +id;{),+}]}) ={[E  id(E  );{$,+}], [E  E  +id;{),+}]} 7 Closure([E  id(E)  ;{$,+}]) ={[E  id(E)  ;{$,+}]} 8 Closure({[E  id  ;{), +}], [E  id  (E);{), +}]) ={[E  id  ;{), +}], [E  id  (E);{), +}]} 9 Closure([E  E+  id;{),+}]}) ={[E  E+  id;{),+}]} 10 Goto(10, id) =Closure([E  E+id  ;{),+}]}) ={[E  E+id  ;{),+}]} 12 Closure([E  id(  E);{),+}]) ={[E  id(  E) {),+}], [E  id;{), +}], [E  id(E);{), +}], [E  E+id;{), +}]} 11 Closure({[E  id(E  );{),+}], [E  E  +id;{),+}]}) ={[E  id(E  );{),+}], [E  E  +id;{),+}]} 13 Closure([E  id(E)  ;{),+}]) ={[E  id(E)  ;{),+}]} 14 S E id ( + E ( ) + + E )

12 IFT31312 id+()$SE 0s312 1acc 2s4r1 3r2s5r2 4s6 5s87 6r4 7s10s9 8r2s11r2 9r3 10s12 11s8 12r4 13s10s14 14r3 8. C’est une grammaire LR(1) parce que la table d’analyse LR(1) n’a pas de conflit. 7. Table d’analyse LR(1) goto action/goto

13 IFT AFD LALR(1) {[S’  S;{$}], [S  E;{$}], [E  id;{$,+}], [E  id(E) ;{$,+}], [E  E+id;{$,+}]} {[S’  S  ;{$}]} {[S  E  ;{$}], [E  E  +id;{$,+}]} {[E  id  ;{$,+, )}], [E  id  (E) ;{$,+, )}]} {[E  E+  id;{$,+,)}]} 4 {[E  id(  E) {$,+,)}], [E  id;{), +}], [E  id(E);{), +}], [E  E+id;{), +}]} 5 {[E  E+id  ;{$,+,)}]} 6 {[E  id(E  );{$,+, )}], [E  E  +id;{),+}]} 7 {[E  id(E)  ;{$,+,)}]} 8 S E id ( + E ) + Obtenu de l’AFD LR(1) en fusionnant les états ayant les mêmes couleurs : 8-3; 4-10; 5-11; 7-13; L’état 8 correspond au 9 dans l’AFD LR(1). Sans surprise, c’est le même AFD que l’AFD LR(0) mis à part les lookahead, vu que la grammaire est SLR(1).

14 IFT g Table d’analyse LALR(1) id+()$SE 0s312 1acc 2s4r1 3r2s5r2 4s6 5s37 6r4 7s4s8 8r3 2.h C’est une grammaire LALR(1) parce que la table d’analyse LALR(1) n’a pas de conflit. On s’y attend puisque la grammaire est SLR(1). En fait la table LALR(1) est la même que la table SLR(1). goto action/goto


Télécharger ppt "IFT313 Introduction aux langage formels Francis Bisson Département d’informatique Université de Sherbrooke Lab 7 Analyses LR(1) et LALR(1)"

Présentations similaires


Annonces Google