IFT313 Révision finale Département d’informatique

Slides:



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

Introduction: Concepts de la programmation
Affichage interactif, bidimensionnel et incrémental de formules mathématiques Hanane Naciri et Laurence Rideau INRIA Sophia Antipolis CARI'2000.
Sensibilisation à l’Algorithmique et structure de données
Analyse syntaxique (intro)
24 septembre 2007Cours de compilation 4 - Intranet1 Cours de compilation Techniques danalyse descendantes.
Chap 1 Grammaires et dérivations.
INTRODUCTION.
Introduction : Compilation et Traduction
IFT 702 – Planification en Intelligence Artificielle Planification avec des processus de décision de Markov Froduald Kabanza Département d’informatique.
IFT313 Introduction aux langages formels
IFT 615 – Intelligence artificielle Recherche heuristique locale
IFT313 Introduction aux langages formels
IFT 615 – Intelligence Artificielle Introduction
IFT313 – Introduction aux langages formels Eric Beaudry Département dinformatique Université de Sherbrooke Laboratoire 4 – JFlex Été 2010.
IFT313 Introduction aux langages formels
IFT 702 – Planification en intelligence artificielle Extraction automatique d’heuristiques à partir d’un modèle Froduald Kabanza Département d’informatique.
IFT313 Introduction aux langages formels
Introduction : Compilation et Traduction
IFT 615 – Intelligence artificielle Agents intelligents
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.
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
Notions de base de la théorie des langages
IFT 615 – Intelligence Artificielle Satisfaction de contraintes
Froduald Kabanza Département d’informatique Université de Sherbrooke
RDF(S)
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
Examen de compilation 4ème année - A
IFT 615 – Intelligence Artificielle Satisfaction de contraintes
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 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)
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.
Froduald Kabanza Département d’informatique Université de Sherbrooke
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.
1 CSI3525: Concepts des Languages de Programmation Notes # 3: Description Syntaxique des Languages.
Hiver 2003SEG2501 analyse lexicale1 Notes supplémentaires au sujet de lanalyse lexicale Exemples Dérivation dun NFA qui accepte le même langage (algorithme:
Applications des langages hors-contextes Les analyseurs syntactiques ascendants GNU Yacc et Bison.
Chapitre 3 Syntaxe et sémantique.
Analyse lexicale et syntaxique
IFT313 – Introduction aux langages formels Éric Beaudry Exercices Expressions régulières, ADF et AFN Été 2010.
Séance d’introduction
Description des langages
Programmation non procédurale Le projet ECOLE 2000
Rappel Modèle analyse-synthèse de la compilation
IFT313 Introduction aux langage formels
Paradigmes des Langages de Programmation
Algorithmes et Programmation
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.
IFT313 Introduction aux langage formels
Recherche par automates finis
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.
Chap 1 Grammaires et dérivations.
CSI 3525, Grammaires, page 1 Description des langages –Syntaxe et sémantique –Grammaires –Sémantique axiomatique.
Chap 2. L'analyse descendante
IFT313 Solutions TP6 – Été 2010 Département d’informatique
Transcription de la présentation:

IFT313 Révision finale Département d’informatique Froduald Kabanza Département d’informatique Université de Sherbrooke Révision finale

Analyse Lexicale - Expressions régulières Savoir ce qu’un langage régulier. Être capable d’écrire une expression régulière décrivant un langage donné. Être capable de faire une recherche dans un fichier texte en utilisant grep. Être capable d’écrire un programme cherchant des patterns dans un fichier texte avec regex. IFT313 © Froduald Kabanza

Analyse lexicale - Automates à états finis Être capable d’écrire une automate fini acceptant un langage donné. Être capable de programmer un automate fini reconnaissant les tokens d’un langage donné. IFT313 © Froduald Kabanza

Analyse lexicale – de Exp. Reg. à AFN Être capable d’écrire un automate fini acceptant le langage décrit par une expression régulière donnée. IFT313 © Froduald Kabanza

Analyse lexical – de AFN à AFD Être capable d’écrire un automate fini déterministe correspondant à un automate fini non déterministe. Être capable de simuler un AFN. IFT313 © Froduald Kabanza

Analyse lexical – générateurs d’analyseurs lexicaux Savoir utiliser JFLEX pour générer un analyseur lexical. IFT313 © Froduald Kabanza

Minimisation d’un AFD Savoir minimiser la taille (nombre d’états) d’un AFD. IFT313 © Froduald Kabanza

Analyse syntaxique - grammaires Savoir reconnaître et expliquer les différentes types de grammaires. Pouvoir donner une grammaire acceptant un langage donné. Pouvoir décrire le langage accepté par une grammaire donnée. Connaître le rapport entre les grammaires et les automates finis. Pouvoir expliquer le concept d’arbre d’analyse. Pouvoir expliquer ce qu’une grammaire ambiguë. IFT313 © Froduald Kabanza

Analyse syntaxique – automate à pile Savoir décrire un automate à pile acceptant un langage donné ? Savoir simuler l’exécution d’un automate à pile ? Exprimer le pouvoir d’expressivité d’un automate à pile ? IFT313 © Froduald Kabanza

Analyse syntaxique LL – automate à pile LL Pouvoir décrire et simuler un automate à pile LL pour une grammaire donnée. IFT313 © Froduald Kabanza

Analyse syntaxique LL – Nullable, First, Follow, table d’analyse Savoir définir les concepts de symboles nullables, d’ensemble first et d’ensemble follow pour une grammaire. Pouvoir décrire et appliquer un algorithme pour calculer les symboles nullables, l’ensemble first et l’ensemble follow pour une grammaire. Savoir calculer une table d’analyse LL(1) pour une grammaire LL(1) donnée. Pouvoir déterminer si une grammaire est LL(1) IFT313 © Froduald Kabanza

Analyse syntaxique LL non-récursif Comprendre et pouvoir décrire et simuler l’algorithme d’analyse LL (1) non-récursif. Pouvoir transformer une grammaire non LL(1) en une grammaire LL (1) Pouvoir transformer une grammaires ambiguë en une grammaire non-ambiguë. Pouvoir éliminer la récursivité à gauche (left recursion). Pouvoir utiliser la factorisation à gauche (left factoring) IFT313 © Froduald Kabanza

Analyse syntaxique LL récursif Pouvoir programmer un analyseur syntaxique récursif pour une grammaire donnée. Connaître les fondements d’un générateur d’analyseur syntaxique LL tel que JavaCC. IFT313 © Froduald Kabanza

Analyse syntaxique - grammaires Savoir reconnaître et expliquer les différentes types de grammaires. Pouvoir donner une grammaire acceptant un langage donné. Pouvoir décrire le langage accepté par une grammaire donnée. Connaître le rapport entre les grammaires et les automates finis. Pouvoir expliquer le concept d’arbre d’analyse. Pouvoir expliquer ce qu’une grammaire ambiguë. IFT313 © Froduald Kabanza

Analyse syntaxique – automate à pile Savoir décrire un automate à pile acceptant un langage donné ? Savoir simuler l’exécution d’un automate à pile ? Exprimer le pouvoir d’expressivité d’un automate à pile ? IFT313 © Froduald Kabanza

Analyse syntaxique LL – automate à pile LL Pouvoir décrire et simuler un automate à pile LL pour une grammaire donnée. IFT313 © Froduald Kabanza

Analyse syntaxique LL – Nullable, First, Follow, table d’analyse Savoir définir les concepts de symboles nullables, d’ensemble first et d’ensemble follow pour une grammaire. Pouvoir décrire et appliquer un algorithme pour calculer les symboles nullables, l’ensemble first et l’ensemble follow pour une grammaire. Savoir calculer une table d’analyse LL(1) pour une grammaire LL(1) donnée. Pouvoir déterminer si une grammaire est LL(1) IFT313 © Froduald Kabanza

Analyse syntaxique LL non-récursif Comprendre et pouvoir décrire et simuler l’algorithme d’analyse LL (1) non-récursif. Pouvoir transformer une grammaire non LL(1) en une grammaire LL (1) Pouvoir transformer une grammaires ambiguë en une grammaire non-ambiguë. Pouvoir éliminer la récursivité à gauche (left recursion). Pouvoir utiliser la factorisation à gauche (left factoring) IFT313 © Froduald Kabanza

Analyse syntaxique LL récursif Pouvoir programmer un analyseur syntaxique récursif pour une grammaire donnée. Connaître les fondements d’un générateur d’analyseur syntaxique LL tel que JavaCC. IFT313 © Froduald Kabanza

Automate à pile LR Notion de poignée (handle) Pouvoir définir et simuler un automate à pile LR. Pouvoir définir la notion de poignée (handle). IFT313 © Froduald Kabanza

Préfixes viables Éléments LR(0) AFD LR()) Pouvoir calculer l’AFD des préfixes viables. Pouvoir générer une table d’analyse LR(0). Pouvoir décrire le driver LR(0) et le simuler. IFT313 © Froduald Kabanza

Analyse LR(0) Analyse SLR(1) Pouvoir définir et simuler l’algorithme d’analyse LR (Driver LR) Pouvoir générer une table d’analyse SLR(1) pour une grammaire donnée. Pouvoir reconnaître les grammaires SLR(1). IFT313 © Froduald Kabanza

Analyse LR(1) Analyse LALR(1) Pouvoir définir ce qu’un élément LR(1). Pouvoir calculer l’AFD LR(1). Pouvoir construire la table d’analyse LR(1). Pouvoir reconnaître des grammaires LR(1). Pouvoir calculer l’AFD LALR(1) Pouvoir construire la table d’analyse LALR(1). Pouvoir reconnaître des grammaires LALR(1). Comprendre les forces relatives des analyses LR(0), SLR(1), LR(1) et LALR(1). Connaître l’hiérarchie entre les différentes classes de grammaires hors-contexte : LL(0), LL(1), LR(0), LR(1), SLR(1), LALR(1). IFT313 © Froduald Kabanza

Java CUP Pouvoir spécifier une grammaire avec Java CUP Pouvoir spécifier des actions sémantiques avec Java CUP IFT313 © Froduald Kabanza