IFT313 Introduction aux langage formels

Slides:



Advertisements
Présentations similaires
Déductions logiques et calcul de représentations sémantiques Alain Lecomte UMR SFL Séminaire « Logique, Sémantique, Dialogue » - partie I.
Advertisements

SÉMINAIRE NATIONAL – LYCÉE RASPAIL – 29 et 30 MAI 2006
Coëf: 3 Durée: 4 semaines Évaluation : CCF
9 octobre 2007Cours de compilation 5 - Intranet1 Cours de compilation Techniques danalyse ascendantes.
Proposition d’organisation temporelle des modules STI en BTS CRSA,
Algèbre relationnelle
Ministère de l'Education Nationale
« Préparation et Réalisation d’Ouvrages Electriques »
LE SURPLUS DU CONSOMMATEUR
Introduction : Compilation et Traduction
« La place de la maintenance dans la filière chaudronnerie »
Risques et Conseils de sécurité.
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
Université Paul Sabatier - Toulouse 3 - Département de GMP Enquête Insertion Professionnelle – Promotion
IFT313 – Introduction aux langages formels Eric Beaudry Département dinformatique Université de Sherbrooke Laboratoire 4 – JFlex Été 2010.
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313.
Optimisation des Requêtes. Introduction Introduction.
Analyse  Syntactique (Compilers, Principles, Techniques and Tools, Aho, Sethi et Ullman, 1986)
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313.
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313.
IFT451 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313.
IFT313 Introduction aux langages formels
BAC DE DEGRAISSAGE.
RENOVATION B.T.S. BÂTIMENT - B.T.S. TRAVAUX PUBLICS
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
Maître de Conférences Aix Marseille Université
Enseigner la conjugaison Observation Réfléchie de la Langue
Quatrième étape : cheminer dans les graphes. Une chaîne… Quand elle nutilise pas plusieurs fois la même arête, la chaîne est dite simple. Au sens du programme,
FORMATION CONTINUE "TECHNICIEN d'USINAGE " LP Fernand Forest
Cycle préparatoire PeiP Parcours élève ingénieur Polytech
Comore (Sophia) Modélisation et contrôle en biologie Modèles décosystèmes, de bioprocédés Ecriture du modèle (en collaboration) Comparaison aux données,
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke Révision de mi-session.
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke JavaCC.
IFT313 Révision finale Département d’informatique
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke Grammaires attribuées.
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313.
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke Analyseurs récursifs LL (1)
IFT615 – Intelligence artificielle Planification temporelle
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke Automates à pile LR Notion de poignée.
Présentation du Plan Comptable dÉtat Jeudi 13 novembre 2008.
Applications des langages hors-contextes Les analyseurs syntactiques ascendants GNU Yacc et Bison.
Analyse lexicale et syntaxique
IFT313 – Introduction aux langages formels Éric Beaudry Exercices Expressions régulières, ADF et AFN Été 2010.
Sonia VILLANI - Alain BERAUD CPC Arles
Rappel Modèle analyse-synthèse de la compilation
MENU GESTION EPREUVE GESTION EQUIPE GESTION RESULTAT Gestion catégorie
1 clic sur le personnage confirme/infirme la réponse.
Expressions régulières et hash tables
Ivaldi-Brunel, Horel, Le Fur, Joly
Ab et Tau dans la physiopathologie de la maladie d Alzheimer
Paradigmes des Langages de Programmation
Arbres et graphes.
Répondez aux Questions. 1. Qu’est-ce que c’est? Un canard.
Baccalauréat Professionnel LOGISTIQUE
GENERALITE SUR LA PHYSIQUE DES SEMI-CONDUCTEURS
Ab et Tau dans la physiopathologie de la maladie d Alzheimer
IFT313 Introduction aux langage formels
Abdelkader Heni FUNDP Syntaxe et sémantique Abdelkader Heni FUNDP
IFT313 Solutions devoir #6 Été 2009 Éric Beaudry.
IFT313 Solutions TP6 – Été 2010 Département d’informatique
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
Transcription de la présentation:

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

Exercice 1 IFT313

Exercice 1 Étant donné la grammaire G= ({S}, {i, e, o}, R, S), avec 1. S → iSeS 2. S → iS 3. 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

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

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

Exercice 2 IFT313

Exercice 2 Soit la grammaire G= ({S, E}, { id, +, ), ( }, R, S), avec 3. E → id (E) 4. 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

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

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

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

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

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

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; 9-14. 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

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