IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke Grammaires attribuées.

Slides:



Advertisements
Présentations similaires
Introduction Rétro ingénierie d’interfaces graphiques
Advertisements

Les présentateurs doivent souvent transmettre des informations techniques à des auditeurs qui connaissent moins bien le sujet et le vocabulaire spécifique.
Introduction Langage très répandu Noyau Linux VLC … Des avantages indéniables mais aussi des contraintes ! Ceci nest quun rapide tour.
Traitement sémantique et grammaire dattributs Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)
Sémantique des déclarations pour le langage Z minimal
Spécification et qualité du logiciel
C.
Chap 1 Grammaires et dérivations.
Introduction : Compilation et Traduction
IFT313 Introduction aux langages formels
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
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.
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313.
Analyse lexicale Généralités Expressions rationnelles Automates finis
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
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
Introduction à la programmation (Java)
IFT313 Introduction aux langages formels
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
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
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke Automates à pile LR Notion de poignée.
IFT 702 – Planification en intelligence artificielle Transformations Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift702.
IFT313Froduald Kabanza1 IFT 313 Lab 1 1Écrivez une expression régulière pour chacun des langues suivants: a)Des mots sur lalphabet {a,b,c} telle que toute.
Principes de programmation
1 CSI3525: Concepts des Languages de Programmation Notes # 3: Description Syntaxique des Languages.
Traduction dirigée par la syntaxe
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
IFT 6800 Atelier en Technologies d’information
Chapitre 3 Syntaxe et sémantique.
1-1 Chapitre 5: Les variables Introduction Les noms Les variables Les attributions (bindings) Portée et durée de vie L'environnement de référence Les noms.
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
Types de données fondamentaux
L’essentiel du langage C
Paradigmes des Langages de Programmation
Cours 1 1 Java. Cours 1 2 Plan général 1.Introduction 2.Les types primitifs, évaluation d’expressions 3.Instructions for, if…. 4.Introduction de l’objet,
CSI3525: Concepts des Langages de Programmation Notes # 13: Introduction au SmallTalk.
IFT 702 – Planification en intelligence artificielle Planification par recherche dans un espace de plans Froduald Kabanza Département d’informatique Université.
Tables de compilation pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
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)
IFT313 Introduction aux langage formels
ISBN Chapitre 10 L'implémentation des sous- programmes.
IFT313 – Introduction aux langages formels Eric Beaudry Département d’informatique Université de Sherbrooke Laboratoire sur JFLEX Été 2010.
Chap 1 Grammaires et dérivations.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) C O M P I L Z.
LOGIQUE ET PROGRAMMATION LOGIQUE
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Directives Ocaml Définition
Introduction au langage C
BlueJ_III 1 Java, les objets : tout de suite ! Interaction entre objets Notes de cours associées au chapitre 3 tutorial BlueJ
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
Transcription de la présentation:

IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke Grammaires attribuées

IFT313© Froduald Kabanza2 Objectifs Se familiariser avec la notion de grammaire attribuée.

IFT313© Froduald Kabanza3 Références [2] Appel, A. and Palsberg. J. Modern Compiler Implementation in Java. Second Edition. Cambridge, – Section 3.2

IFT313© Froduald Kabanza et Éric Beaudry4 Actions sémantiques et grammaires attribuées –Une action sémantique est un code associé à une production et exécuté lorsquil y a une réduction avec la production durant lanalyse. –Un attribut est une donnée associée à un symbole dune production. –Par exemple, si le symbole est un terminal, ça pourrait être la valeur du token (valeur double dun token réel). –Si le symbole est un non terminal, lattribut pourrait être une donnée calculée en utilisant les actions sémantiques. –Une grammaire avec des attributs est appelée une grammaire attribuée. –Un attribut peut être synthétique (calculé) ou hérité (valeur copiée dun enfant ou parent).

IFT313© Froduald Kabanza5 Attributs déterminés par lanalyseur lexical Par exemple, pour un lexème de type nombre, on peut calculer certains attributs au moment de lanalyse lexicale. Attributs dun nombre: –Type : {Réel, Entier, Long, LongDouble, …) –Valeur Nombre = [0-9]+// entier ordinaire 32 bits Nombre = [0-9]+L // entier long (64 bits) Nombre = [0-9]*.[0-9]+ // réel double (64 bits) Nombre = [0-9]*.[0-9]+f // réel float (32 bits)

IFT313© Froduald Kabanza6 Attributs déterminés par lanalyseur lexical Texte:int a = (int) ; Lexèmes: Lexèmes attribués:

IFT313© Froduald Kabanza7 Attributs calculés par des règles de la grammaire Grammaire: E E op E E num op + | - | * | / Chaine: 2.1 * 2 E EE num Type=réel, value=2.1 op Type=réel, value=2.1 Type=réel, value=4.2 num Type=entier, value=2

IFT313© Froduald Kabanza8 Attributs dans JavaCC JavaCC ne fait pas que valider la syntaxe. Il peut permettre deffectuer des calculs à la volé (ex.: calc). Il peut aussi charger un arbre syntaxique de façon –manuelle (exemple Calc2 ci-après); –automatique avec loutil JJTree. Des attributs sont utilisés. Limites avec JavaCC: –un seul attribut par symbole. –une seule passe dévaluation. Pour aller au-delà, il faut utiliser dautres outils ou des méthodes adhoc pour évaluer les attributs.

IFT313© Froduald Kabanza9 Conclusion Les attributs dans une grammaire sont utiles pour faire lanalyse sémantique. Dans ce cours, nous nous limiterons à des cas simples, soit dinterpréter directement une expression ou en construisant un arbre syntaxique abstrait. Ces utilisations se font en une seule passe.