Feuilles de route et objectifs IFT 313

Download Report

Transcript Feuilles de route et objectifs IFT 313

IFT 313 - Introduction aux
langages formels
Feuilles de route
et objectifs
Introduction (survol)
 
 
 
 
 
 
 
 
 
 
Un additionneur
Un oscillateur harmonique
Un boulier et un circuit électrique
Les missionnaires et les cannibales
Le chat et la souris
Un programme C
Les solutions d’une équation linéaire
Les identificateurs du langage Pascal
Les expressions avec parenthèses
Un langage naturel
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
2
Objectifs du chapitre 1
 
 
 
Maîtriser les concepts de la théorie des
ensembles, de relation, de fonction, de graphe et
d'arbre
Comprendre comment définir récursivement un
ensemble, une fonction ou une relation
Être capable d'effectuer des preuves simples en
utilisant le principe de l'induction mathématique
Note : le chapitre 1 ne fait pas partie du cours.
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
3
1
Feuille de route
 
 
Lecture du plan de cours
Familiarisation avec les répertoires du cours
  /home/public/cours/ift313
  /opt/cocktail-0210/doc.pdf
 
 
Lecture du chapitre 1 du livre de Sudkamp
(révision)
Lecture du chapitre 2 du livre de Sudkamp (pour
le prochain cours)
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
4
Objectifs du chapitre 2
 
 
 
 
Maîtriser les concepts de chaîne et de langage
Être capable de définir formellement à l'aide
d'une expression régulière un langage décrit en
français
Être capable de décrire en français un langage
défini formellement à l'aide d'une expression
régulière
Être capable de simplifier des expressions
régulières complexes
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
5
Feuille de route
 
 
 
 
Lecture du chapitre 2 du livre de Sudkamp
Tests #1
Exercices du chapitre 2
Lecture des sections 5.1 à 5.3 (pour le prochain
cours)
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
6
2
Objectifs du chapitre 5
 
 
 
Maîtriser le concept d'automate fini déterministe
Être capable de trouver, à partir de la description
d'un langage simple, un automate fini déterministe
qui accepte ce langage
Comprendre et appliquer les deux algorithmes de
traduction d’une expression régulière en un
automate fini déterministe
  celui
  celui
basé sur la construction d’un arbre d’analyse
basé sur la notion d’item
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
7
Objectifs du chapitre 5
 
 
Comprendre le concept de non déterministe
Savoir qu’une expression régulière, qu’un
automate fini déterministe, qu’un automate fini non
déterministe sans λ-transition et qu’un automate
fini non déterministe avec λ-transitions ont la
même puissance d’expressivité
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
8
Feuille de route
 
 
 
 
 
 
Lecture des sections 5.1 à 5.3 du livre de
Sudkamp
Lecture des notes sur les deux algorithmes de
traduction d’une regexp en un DFA
Révision de la section 5.7, minimisation d’un
automate (facultatif)
Test #2 (modélisation)
Tests #3 et #4 (génération à partir d’une regexp)
Exercices 1 à 22 du chapitre 5
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
9
3
Objectifs de la partie
sur l’analyse lexicale
 
 
 
Comprendre la différence entre un simulateur
d’un automate et la fonction Get_Token d’un
analyseur lexical
Être capable d’utiliser l’outil rex
Être capable de générer un analyseur lexical à
partir de la description de règles lexicales d’un
langage de programmation en utilisant l’outil rex
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
10
Feuille de route
 
 
Devoir #1
Examiner quelques exemples de programmes rex
(/home/public/cours/ift313/ProgrammesRex)
  identificateur.rex
  pascal--.rex
  G.rex
 
Lecture du chapitre 3 (pour le prochain cours)
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
11
Objectifs du chapitre 3
 
 
 
Maîtriser les concepts de grammaire horscontexte, de chaîne, de phrase, de protophrase,
de dérivation, d'arbre de dérivation
Être capable de définir formellement à l'aide
d'une grammaire hors-contexte un langage décrit
en français
Être capable de décrire en français un langage
défini formellement à l'aide d'une grammaire
hors-contexte
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
12
4
Objectifs du chapitre 3
 
 
 
 
Comprendre l'utilisation d'une grammaire horscontexte dans la description des langages de
programmation comme C++ ou Java
Maîtriser les concepts de dérivation à gauche et
de dérivation à droite
Comprendre ce qu'est une grammaire horscontexte ambiguë
Connaître les différentes formes de règle de
production
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
13
Feuille de route
 
 
 
 
 
 
Lecture du chapitre 3 (sauf la section 3.4) du livre
de Sudkamp
Exercices du chapitre 3
Lecture du chapitre 4 (facultatif)
Devoir #2
Lecture de la section 6.6 (pour le prochain cours)
Préparation de l'examen périodique
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
14
Objectifs du chapitre 6
 
 
Comprendre le lemme de l’étoile
Appliquer le lemme de l’étoile pour de simples
langages
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
15
5
Feuille de route
 
 
 
Lecture de la section 6.6 du livre de Sudkamp
Test #5
Lecture du chapitre 18 (pour le prochain cours)
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
16
Objectifs du chapitre 18
 
 
 
Être capable de construire en partie le graphe
d’une grammaire hors contexte
Comprendre l’algorithme 18.2.1
Comprendre l’algorithme 18.4.1
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
17
Feuille de route
 
 
Lecture du chapitre 18 du livre de Sudkamp
Lecture des sections 7.1 à 7.3 (pour le prochain
cours)
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
18
6
Objectifs du chapitre 7
 
 
 
 
Maîtriser le concept d'automate à pile
Comprendre la distinction entre un automate à pile
déterministe et un automate à pile non déterministe
Être capable de trouver, à partir de la description
d'un langage simple, un automate à pile (selon un
type approprié) qui accepte ce langage
Savoir qu’une grammaire hors contexte et que les
différents types d’automate à pile ont la même
puissance d’expressivité
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
19
Feuille de route
 
 
 
 
Lecture des sections 7.1, 7.2 et 7.3 (comprendre
le théorème 7.3.1 et connaître le théorème 7.3.2)
du livre de Sudkamp
Test #6
Exercices 1 à 12 du chapitre 7
Lecture du chapitre 19 (pour le prochain cours)
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
20
Objectifs du chapitre 19
 
 
 
 
Être capable de calculer LAk(A → α) pour chaque
règle de production
Comprendre la technique d’analyse syntaxique à
l’aide d’un automate à pile étendu avec symbole
initial dans la pile
Comprendre la technique d’analyse syntaxique à
l’aide d’un automate à pile modifié
Comprendre la technique de la descendante
récursive
Cours IFT 313 -Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
21
7
Objectifs du chapitre 19
 
 
Être capable de trouver une grammaire LL(k)
(k = 1 ou k = 2) à partir d’une grammaire non
LL(k), si cela est possible
Être capable de construire un analyseur
syntaxique descendant selon la technique
  d’un
  de
automate à pile modifié
la descendante récursive
Cours IFT 313 -Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
22
Objectifs du chapitre 19
 
 
Être capable d’utiliser l’outil ell
Être capable de générer un analyseur syntaxique
à partir d’une grammaire hors contexte d’un
langage de programmation en utilisant l’outil ell
Cours IFT 313 -Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
23
Feuille de route
 
 
 
 
 
Lecture du chapitre 19 du livre de Sudkamp
Devoir #3
Examiner un exemple d’un programme ell
(/home/public/cours/ift313/ProgrammesEll)
Exercices du chapitre 19 sauf ceux avec les *
Lecture du chapitre 20 du livre de Sudkamp (pour
le prochain cours)
Cours IFT 313 -Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
24
8
Objectifs du chapitre 20
 
 
 
 
Comprendre les notions de préfixe d’une variable,
d’un contexte LR(0) et d’un préfixe viable
Comprendre la notion d’item LR(0)
Être capable de calculer l’ensemble des
ensembles d’items LR(0) à partir d’une
grammaire hors contexte
Être capable de déterminer si une grammaire
hors contexte est LR(0) ou SLR(1)
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
25
Objectifs du chapitre 20
 
 
 
 
Être capable de construire la table d’analyse (la
table action et la table goto) à partir de l’ensemble
des ensembles d’items LR(0)
Comprendre la notion d’item LR(1)
Être capable de calculer l’ensemble des
ensembles d’items LR(1) à partir d’une
grammaire hors contexte
Être capable de déterminer si une grammaire
hors contexte est LR(1) ou LALR(1)
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
26
Objectifs du chapitre 20
 
 
Être capable de construire la table d’analyse (la
table d’action et la table goto) à partir de
l’ensemble des ensembles d’items LR(1)
Comprendre le fonctionnement d’un analyseur
syntaxique ascendant à l’aide
  d’un
  d’un
machine LR(0)
machine LR(1)
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
27
9
Objectifs du chapitre 20
 
 
Être capable d’utiliser l’outil lark
Être capable de générer un analyseur syntaxique
à partir d’une grammaire hors contexte d’un
langage de programmation en utilisant l’outil lark
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
28
Feuille de route
 
 
 
Lecture du chapitre 20 du livre de Sudkamp
Devoir #4
Examiner un exemple d’un programme lark
(/home/public/cours/ift313/ProgrammesLark)
  pascal--.lrk
 
Exercices du chapitre 20
Cours IFT 313 - Introduction aux langages formels (R. St-Denis, Université de Sherbrooke)
29
10