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

Présentations similaires


Présentation au sujet: "IFT313 Introduction aux langage formels"— 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 IFT313

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

4 1. a-b AFD LR(1) et Table d’analyse LR(1)
actions goto S’® .S, $ S® .iSeS, $ S® .iS, $ S® .o, $ i e o $ S s2 s3 1 acc 2 s8 s7 4 3 r3 s5 r2 5 6 r1 7 8 9 s10 10 11 3 S® o., $ o S 1 S’® S., $ i i 8 S® i.SeS, $/e S® i.S, $/e S® .iSeS, $/e S® .iS, $/e S® .o, $/e 2 S® i.SeS, $ S® i.S, $ S® .iSeS, $/e S® .iS, $/e S® .o, $/e i 7 S® o., $/e o i o S S o 4 S® iS.eS, $ S® iS., $ 9 S® iS.eS, $/e S® iS., $/e 7 6 S® iSeS., $ e e o i S 5 S® iSe.S, $ S® .iSeS, $ S® .iS, $ S® .o, $ 10 S® iSe.S, $/e S® .iSeS, $/e S® .iS, $/e S® .o, $/e 11 S® iSeS., $/e S 1. S® iSeS 2. S® iS 3. S® o 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) IFT313/IFT451 © Froduald Kabanza

5 1.d-e AFD LALR(1) et Table d’analyse LALR(1)
actions goto S’® .S, $ S® .iSeS, $ S® .iS, $ S® .o, $ S 1 S’® S., $ i e o $ S s2 s3 1 acc 2 4 3 r3 r2 s5 5 6 r1 o i 2 S® i.SeS, $/e S® .iSeS, $/e S® .iS, $/e S® .o, $/e 3 S® o., $/e o i S 4 S® iS.eS, $/e S® iS., $/e i o e Ce qui est normal. Si la grammaire est non LR(1), elle ne peut pas non plus être LALR(1). 5 S® iSe.S, $/e S® .iSeS, $/e S® .iS, $/e S® .o, $/e 1. S® iSeS 2. S® iS 3. S® o S 6 S® iSeS., $/e 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) IFT313/IFT451 © Froduald Kabanza

6 Exercice 2 IFT313

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

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

9 2.b Table d’analyse LR(0) id + ( ) $ S E s3 1 2 acc r1 s4 3 r2 s5 4 s6
action/goto goto id + ( ) $ S E s3 1 2 acc r1 s4 3 r2 s5 4 s6 5 7 6 r4 s8 8 r3 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,(]. IFT313

10 2.d Table d’analyse SLR(1) id + ( ) $ S E s3 1 2 acc s4 r1 3 r2 s5 4
action/goto goto id + ( ) $ S E s3 1 2 acc s4 r1 3 r2 s5 4 s6 5 7 6 r4 s8 8 r3 2.e C’est une grammaire SLR(1) parce que la table d’analyse SLR(1) n’a pas de conflit. IFT313

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

12 7. Table d’analyse LR(1) action/goto goto id + ( ) $ S E s3 1 2 acc s4 r1 3 r2 s5 4 s6 5 s8 7 6 r4 s10 s9 8 s11 9 r3 10 s12 11 12 13 s14 14 8. C’est une grammaire LR(1) parce que la table d’analyse LR(1) n’a pas de conflit. IFT313

13 8. AFD LALR(1) 6 1 {[E E+id;{$,+,)}]} {[S’ S;{$}], [S E;{$}], [E id;{$,+}], [E id(E) ;{$,+}], [E E+id;{$,+}]} {[S’ S ;{$}]} S id 2 4 {[SE;{$}], [E E+id;{$,+}]} {[E E+id;{$,+,)}]} E + 8 id 3 {[E id(E);{$,+,)}]} {[E id;{$,+, )}], [E id(E) ;{$,+, )}]} id 5 {[E id(E) {$,+,)}], [E id;{), +}], [E id(E);{), +}], [E E+id;{), +}]} + 7 E ( {[E id(E);{$,+, )}], [E E+id;{),+}]} ) 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). IFT313

14 2.g Table d’analyse LALR(1) id + ( ) $ S E s3 1 2 acc s4 r1 3 r2 s5 4
action/goto goto id + ( ) $ S E s3 1 2 acc s4 r1 3 r2 s5 4 s6 5 7 6 r4 s8 8 r3 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). IFT313


Télécharger ppt "IFT313 Introduction aux langage formels"

Présentations similaires


Annonces Google