IFT313 Introduction aux langage formels

Slides:



Advertisements
Présentations similaires
Traitement sémantique et grammaire dattributs Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)
Advertisements

Vue générale Pr ZEGOUR DJAMEL EDDINE
9 octobre 2007Cours de compilation 5 - Intranet1 Cours de compilation Techniques danalyse ascendantes.
Analyse syntaxique (intro)
Chap 1 Grammaires et dérivations.
Introduction : Compilation et Traduction
IFT313 Introduction aux langages formels
IFT313 – Introduction aux langages formels Eric Beaudry Département dinformatique Université de Sherbrooke Laboratoire 4 – JFlex Été 2010.
IFT313 Introduction aux langages formels
Cours de programmation
IFT313 Introduction aux langages formels
Introduction : Compilation et Traduction
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313.
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.
8PRO100 Éléments de programmation Comment faire prendre une décision à un ordinateur?
IFT451 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313.
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
© 2007 P. Van Roy. All rights reserved. 1 FSAB1402: Informatique 2 Sémantique Formelle Peter Van Roy Département dIngénierie Informatique, UCL
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke Révision de mi-session.
IFT313 Révision finale Département d’informatique
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)
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke Automates à pile LR Notion de poignée.
Semaine #1 INF130 par Frédérick Henri.
Peter Van Roy Département d’Ingénierie Informatique, UCL
CSI3525: Concepts des Languages de Programmation
Applications des langages hors-contextes Les analyseurs syntactiques ascendants GNU Yacc et Bison.
8PRO107 Éléments de programmation
Chapitre 3 Syntaxe et sémantique.
Analyse lexicale et syntaxique
Partie II Sémantique.
Sémantique dénotationnelle
IFT313 – Introduction aux langages formels Éric Beaudry Exercices Expressions régulières, ADF et AFN Été 2010.
Séance d’introduction
Rappel Modèle analyse-synthèse de la compilation
IFT Structures de données Abder Alikacem Département dinformatique et de génie logiciel.
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.
Animateur : Med HAIJOUBI
Programmation procédurale Transformations
IFT313 Introduction aux langage formels
Paradigmes des Langages de Programmation
Algorithmique et programmation en
Sémantique des expressions arithmétiques pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Tables de compilation pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Les tests.
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Le langage Z minimal Pr ZEGOUR DJAMEL EDDINE
Le langage Racket (Lisp)
Sémantique des instructions pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
UMR 7619 Sisyphe Avril 2012 Alexandre Pryet Le langage une introduction pragmatique Cacul itératif.
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Abdelkader Heni FUNDP Syntaxe et sémantique Abdelkader Heni FUNDP
IFT313 – Introduction aux langages formels Eric Beaudry Département d’informatique Université de Sherbrooke Laboratoire sur JFLEX Été 2010.
IFT313 Solutions devoir #6 Été 2009 Éric Beaudry.
CSI3525: Concepts des Langages de Programmation Notes # 10: Controle ( Lire Chapitre 7 )
6/10/2005 © 2005 P. Van Roy. All rights reserved. 1 FSAB1402: Informatique 2 Récursion sur les Listes Peter Van Roy Département d’Ingénierie Informatique,
System 1 Introduction to Computer Architecture
CSI 3525, Grammaires, page 1 Description des langages –Syntaxe et sémantique –Grammaires –Sémantique axiomatique.
IFT313 Solutions TP6 – Été 2010 Département d’informatique
Les analyseurs Bottom-up Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Exercice : Soient les fonctions définies sur N ( ensemble des entiers naturels donc positifs ) par : f(x) = - 2x + 6 ; g(x) = x + 1 ; k(x) = la plus grande.
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
Exercice : Soient les fonctions définies sur N ( ensemble des entiers naturels donc positifs ) par : f(x) = - 2x + 6 ; g(x) = x + 1 ; k(x) = la plus.
Transcription de la présentation:

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

Exercice 1 IFT313

Exercice 1 Soit la grammaire G= ({S, E}, { id, +, ), ( }, R, S), avec 3. E → id (E) 4. E → E + id } 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). Est-ce une grammaire SLR(1) ? Expliquez. IFT313

s E id id + + id ( E ) 1.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

1.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 1.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

1.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 1.e. C’est une grammaire SLR(1) parce que la table d’analyse SLR(1) n’a pas de conflit. IFT313

Exercice 2 IFT313

Exercice 2 - Intro 1/2 L’instruction if expression then expression else expression fait partie d’un bon nombre de langages de programmation. La grammaire correspondante la plus naturelle est ambiguë. Avec une instruction du genre if e1 then if e3 then e3 else e4 L’analyseur LR aurait deux dérivations (deux interprétations) possibles : if e1 then if e3 then e3 else e4 Dans la table d’analyse cette ambiguïté sera reflété par un conflit shift/reduce. La première interprétation donne priorité à reduce. La deuxième interprétation donne priorité à shift. Sémantiquement, c’est généralement la deuxième interprétation qui prévaut : un else correspond toujours au plus récent if dans la même portée. IFT313

Exercice 2 - Intro 2/2 La grammaire suivante G= ({S}, {i, e, o}, R, S), avec R = { 1. S → iSeS 2. S → iS 3. S → o } approxime l’instruction if expression then expression else expression en utilisant i pour désigner ‘if expression then’, e pour désigner ‘else’ et o pour le reste de l’instruction. Les deux arbres d’analyse suivants illustrent deux dérivations droites possibles pour l’entrée iiseo. (2) S=>iS => iiSeS => iiSeo=>iiaeo (1) S=>iSeS => iSea => iiSeo=>iiaeo S i e o S i e o Priorité à shift Priorité à reduce IFT313

Exercice 2 - Questions Étant donné la grammaire G= ({S}, {i, e, o}, R, S), avec R = { 1. S → iSeS 2. S → iS 3. S → o } Donnez l’AFD LR(0). Donner la table d’analyse SLR(1). Est-ce une grammaire SLR(1)? IFT313

2.b Table d’analyse SLR(1) 2.a AFD LR(0) 2.b Table d’analyse SLR(1) 1. S® iSeS 2. S® iS 3. S® o S’® .S S® .iSeS S® .iS S® .o S 1 S’® S. actions goto o i e o $ S s2 s3 1 acc 2 4 3 r3 r2 s5 5 6 r1 i 2 S® i.SeS S® .iSeS S® .iS S® .o 3 S® o. o i S 4 S® iS.eS S® iS. i o e On s’y attendait parce que la grammaire est ambiguë. 5 S® iSe.S S® .iSeS S® .iS S® .o S 6 S® iSeS. 2.c. La grammaire n’est pas SLR(1) parce qu’il y a un conflit shift/reduce dans l’entrée [4,e] de table LALR(1) IFT313

2.b Table d’analyse SLR(1) 2.a AFD LR(0) 2.b Table d’analyse SLR(1) 1. S® iSeS 2. S® iS 3. S® o S’® .S S® .iSeS S® .iS S® .o S 1 S’® S. actions goto o i e o $ S s2 s3 1 acc 2 4 3 r3 r2 s5 5 6 r1 i 2 S® i.SeS S® .iSeS S® .iS S® .o 3 S® o. o i S 4 S® iS.eS S® iS. i o e On s’y attendait parce que la grammaire est ambiguë. 5 S® iSe.S S® .iSeS S® .iS S® .o S 6 S® iSeS. 2.c. La grammaire n’est pas SLR(1) parce qu’il y a un conflit shift/reduce dans l’entrée [4,e] de table LALR(1) IFT313

Exercice 3 Voir Lab6-exercise3.html IFT313 Dépendamment de la progression sur les deux exercices précédents, une partie ou l’entièreté de cet exercice sera laissée à faire à domicile. IFT313