IFT313 Introduction aux langages formels

Slides:



Advertisements
Présentations similaires
IFT313 – Introduction aux langages formels Eric Beaudry Département dinformatique Université de Sherbrooke Laboratoire 4 – JFlex Été 2010.
Advertisements

IFT313 Introduction aux langages formels
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
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke JavaCC.
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 Automates à pile LR Notion de poignée.
CHAftITREI ARCHITECTURE de BASE. Modèle de Von Neumann Langage d’assemblage1 John Von Neumann est à l'origine d'un modèle de machine universelle de traitement.
TP 1 BIS Programmation structurée à l’aide de fonctions (FC) et de bloc fonctionnels (FB)
Utilisation du logiciel EduStat © Distribution de fréquences simples Les compilations.
Progression2 Organisation et gestion de données CM Séquences Socle commun Compétences du palier 2 ProgrammesObjectifs d’apprentissage OG1.
Synthèse TP 2 Codeblock 1 Les objectifs de ce tp sont :
JAVA.
IFT3335 – Introduction à l’intelligence artificielle
LES TABLEAUX EN JAVA.
IFT 702 – Planification en intelligence artificielle Langage PDDL
IFT313 Introduction aux langages formels
Algorithmique demander jeu du pendu.
MOT Éditeur de modèles de connaissances par objets typés
L’Instruction de Test Alternatif
IFT 615 – Intelligence artificielle Recherche heuristique
JAVA et POO : Notion d'héritage
GOBO Ne pas partir de zéro
André Maïsseu et WANG Xingquan Université Versailles-Saint-Quentin-en-Yvelines France L’approche floue en tant qu’outil de la modélisation.
chapitre 1 : Généralités sur les Fonctions.
Polymorphisme : règles
Fonctions logiques et algèbre booléenne
HISTORIQUE DES MISES A JOUR
Programmation Orientée Objet I. Introduction
Exposé d'Histoire-géographie réalisé par Prénom Nom, classe
Programmation en C++ Classes
Régularité et algèbre 3.1 L’élève doit pouvoir explorer des relations : a) à partir de suites non numériques à motif croissant impliquant les notions d’aire.
IFT313 IFT313 Introduction aux langages formels Froduald Kabanza Département d’informatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313.
Cours N°10: Algorithmiques Tableaux - Matrices
PROGRAMMATION ET ENSEIGNEMENT
Introduction aux langages formels
Faculté d’éducation | Faculty of Education
CountrySTAT / FENIX Aperçu globale de la préparation des tableaux dans la nouvelle plateforme CountrySTAT FORMATION DES POINTS FOCAUX SUR LE SYSTEME.
B.Shishedjiev - Informatique
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
Semaine #2 INF130 par Frédérick Henri.
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
20 Données semi-structurées et XML
02/02/2019Module Compilation1. Introduction:  petite historique sur flex/lex  définitions de l’outil flex/lex  l’objectif de l’outil flex/lex  Versions.
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
H. Wertz -- Exécution Symbolique
2. Organisation comptable 2.1 Les comptes
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
PROGRAMMATION ET ENSEIGNEMENT
Le langage C# : Partie 1.
INTERFACE ET POLYMORPHISME
Présenté par Viviane Lévesque
Introduction à L’Informatique
Lecture/Écriture de fichiers (I/O)
CALCUL RAPIDE sur les nombres entiers
Python Nicolas THIBAULT
MOT Éditeur de modèles de connaissances par objets typés
Les données structurées et leur traitement
Transcription de la présentation:

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

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

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

Actions sémantiques et grammaires attribuées Une action sémantique est un code associé à une règle de la grammaire et exécuté lorsqu’il y a une prédiction de la règle durant l’analyse. Un attribut est une donnée associée à un symbole d’une règle de grammaire. Par exemple, si le symbole est un terminal, ça pourrait être la valeur du token (valeur double d’un token réel). Si le symbole est un non terminal, l’attribut 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 d’un enfant ou parent). Plus tard, quand on verra l’analyse LR, on parlera de réduction au lieu de prédiction de règle. Ce sera la même chose. Les actions sémantiques seront exécutées lorsqu’il y a une réduction de la règle de grammaire. IFT313 © Froduald Kabanza

Attributs déterminés par l’analyseur lexical Par exemple, pour un lexème des nombres, on peut calculer certains attributs au moment de l’analyse lexicale. Attributs d’un 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 Kabanza

Attributs déterminés par l’analyseur lexical Texte: int a = (int) 304.29; Lexèmes: <IntKW> <identifier> <EQ> <LPAREN> <IntKW> <RPAREN> <Nombre> Lexèmes attribués: <IntKW> <identifier, name=‘a’> <EQ> <LPAREN> <IntKW> <RPAREN> <Nombre, type=Real, value=304.29> <EOF> IFT313 © Froduald Kabanza

Attributs calculés par des règles de la grammaire E  E op E E  num op  + | - | * | / Mot d’entrée: 2.1 * 2 E Type=réel, value=4.2 op * Type=real, value=2.1 E E Type=integer, value=2 num num Type=reall, value=2.1 Type=integer, value=2 IFT313 © Froduald Kabanza

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