• Aucun résultat trouvé

Révision finale Département d’informatiqueUniversité de Sherbrooke IFT313

N/A
N/A
Protected

Academic year: 2022

Partager "Révision finale Département d’informatiqueUniversité de Sherbrooke IFT313"

Copied!
24
0
0

Texte intégral

(1)

IFT313

Froduald Kabanza

Département d’informatique Université de Sherbrooke

Révision finale

(2)

IFT313 © Froduald Kabanza

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.

(3)

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é.

(4)

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.

(5)

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.

(6)

IFT313 © Froduald Kabanza

6

Analyse lexical –

générateurs d’analyseurs lexicaux

• Savoir utiliser JFLEX pour générer un analyseur lexical.

(7)

IFT313 © Froduald Kabanza

7

Minimisation d’un AFD

• Savoir minimiser la taille (nombre d’états)

d’un AFD.

(8)

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ë.

(9)

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 ?

(10)

IFT313 © Froduald Kabanza

10

Analyse syntaxique LL – automate à pile LL

• Pouvoir décrire et simuler un automate à

pile LL pour une grammaire donnée.

(11)

IFT313 © Froduald Kabanza

11

Analyse syntaxique LL –

Nullable, First, Follow, table d’analyse

• Savoir définir les concepts de symboles nullables, d’en- semble 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 fol- low pour une grammaire.

• Savoir calculer une table d’analyse LL(1) pour une gram- maire LL(1) donnée.

• Pouvoir déterminer si une grammaire est LL(1)

(12)

IFT313 © Froduald Kabanza

12

Analyse syntaxique LL non-récursif

• Comprendre et pouvoir décrire et simuler l’algorithme d’an- alyse 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)

(13)

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.

(14)

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ë.

(15)

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 ?

(16)

IFT313 © Froduald Kabanza

16

Analyse syntaxique LL – automate à pile LL

• Pouvoir décrire et simuler un automate à pile LL pour une grammaire

donnée.

(17)

IFT313 © Froduald Kabanza

17

Analyse syntaxique LL –

Nullable, First, Follow, table d’analyse

• Savoir définir les concepts de symboles nullables, d’en- semble 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 fol- low pour une grammaire.

• Savoir calculer une table d’analyse LL(1) pour une gram- maire LL(1) donnée.

• Pouvoir déterminer si une grammaire est LL(1)

(18)

IFT313 © Froduald Kabanza

18

Analyse syntaxique LL non-récursif

• Comprendre et pouvoir décrire et simuler l’algorithme d’an- alyse 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)

(19)

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.

(20)

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).

(21)

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.

(22)

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 don- née.

• Pouvoir reconnaître les grammaires SLR(1).

(23)

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-con-

texte : LL(0), LL(1), LR(0), LR(1), SLR(1), LALR(1).

(24)

IFT313 © Froduald Kabanza

24

Java CUP

– Pouvoir spécifier une grammaire avec Java CUP

– Pouvoir spécifier des actions sémantiques avec Java CUP

Références

Documents relatifs

Cette note décrit un procédé simple et programmable pour calculer l'invariant de Walker d'une sphère d'homologie rationnelle connue par l'un de ses diagrammes de chirurgies..

On veut savoir la probabilité d’avoir exac- tement deux Pile et une Face, dans n’importe quel ordre.. On fait un arbre et on compte le nombre final de sous-branches : il y en a 8,

On veut savoir la probabilité d’avoir exac- tement deux Pile et une Face, dans n’importe quel ordre.. On fait un arbre et on compte le nombre final de sous-branches : il y en a 8,

On fait un arbre et on compte le nombre final de sous-branches : il y en a 8, dont trois sont favorables à l’évé- nement considéré : la probabilité cherchée est donc 3?.

Quel pourcentage de réduction a été appliqué au plein tarif pour obtenir le tarif réduit ?.1. CHAP N4 Fiche d’Exercices : Appliquer et calculer un pourcentage

Ce sont les mêmes techniques que pour le numérique, mais vous devez vous habituer à la présence de lettres qui empêchent parfois de finir le calcul.. est un problème concret qui

Tous les calculs se font sans calculatrice. Ils utilisent les formules de collège sur les puissances. Retenez bien qu'une même formule peut servir à deux choses. est purement

Simplifier une expression comportant des racines carrées consiste à simplifier toutes ses