La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

IFT313 Révision finale Département d’informatique

Présentations similaires


Présentation au sujet: "IFT313 Révision finale Département d’informatique"— Transcription de la présentation:

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

2 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

3 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

4 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

5 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

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

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

8 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

9 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

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

11 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

12 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

13 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

14 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

15 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

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

17 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

18 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

19 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

20 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

21 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

22 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

23 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

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


Télécharger ppt "IFT313 Révision finale Département d’informatique"

Présentations similaires


Annonces Google