Notes supplmentaires au sujet de lanalyse lexicale Exemples

  • Slides: 13
Download presentation
Notes supplémentaires au sujet de l’analyse lexicale Exemples Dérivation d’un NFA qui accepte le

Notes supplémentaires au sujet de l’analyse lexicale Exemples Dérivation d’un NFA qui accepte le même langage (algorithme: expression régulière – > NFA) Transformation NFA – > DFA par Gregor v. Bochmann février 2003 hiver 2003 SEG 2501 analyse lexicale 1

NFA • Voici un automate qui accepte le langage défini par l’expression régulière (a|b)*abb

NFA • Voici un automate qui accepte le langage défini par l’expression régulière (a|b)*abb hiver 2003 SEG 2501 analyse lexicale 2

suite • Cet automate a la table de transition suivante: hiver 2003 SEG 2501

suite • Cet automate a la table de transition suivante: hiver 2003 SEG 2501 analyse lexicale 3

Voici un DFA qui accepte la même langage hiver 2003 SEG 2501 analyse lexicale

Voici un DFA qui accepte la même langage hiver 2003 SEG 2501 analyse lexicale 4

Exemple de construction d’un automate à partir d’une expression régulière • Nous prenons l’exemple

Exemple de construction d’un automate à partir d’une expression régulière • Nous prenons l’exemple de l’expression r=(a|b)*abb • Voici son arbre syntaxique: hiver 2003 SEG 2501 analyse lexicale 5

Exemple – suite • Pour les feuilles de l’arbre, voici les automates correspondants: •

Exemple – suite • Pour les feuilles de l’arbre, voici les automates correspondants: • Voici l’automate correspondant à la parenthèse avec ses deux alternatives: hiver 2003 SEG 2501 analyse lexicale 6

Exemple – suite (2) • Voici l’automate correspondant à la parenthèse avec l’étoile: hiver

Exemple – suite (2) • Voici l’automate correspondant à la parenthèse avec l’étoile: hiver 2003 SEG 2501 analyse lexicale 7

Exemple – suite (3) • Avec un a ajouté à la fin, cela donne

Exemple – suite (3) • Avec un a ajouté à la fin, cela donne cela: hiver 2003 SEG 2501 analyse lexicale 8

Exemple – suite (4) • . . . et finalement le résultat final: hiver

Exemple – suite (4) • . . . et finalement le résultat final: hiver 2003 SEG 2501 analyse lexicale 9

Exemple de conversion NFA à DFA • Prenons le NFA obtenu pour l’expression régulière

Exemple de conversion NFA à DFA • Prenons le NFA obtenu pour l’expression régulière ci-haut: hiver 2003 SEG 2501 analyse lexicale 10

Table de transition du DFA • Si on applique l’algorithme décrit dans les notes

Table de transition du DFA • Si on applique l’algorithme décrit dans les notes du Dr. Somé, on obtient la table de transition suivante. • Question: Quels ensembles d’états du NFA représentent les états A, B, C etc. du DFA ? hiver 2003 SEG 2501 analyse lexicale 11

Diagramme de transition du DFA hiver 2003 SEG 2501 analyse lexicale 12

Diagramme de transition du DFA hiver 2003 SEG 2501 analyse lexicale 12

La minimalisation des automates • Question: Etes-vous surpris que l’on a pas obtenu le

La minimalisation des automates • Question: Etes-vous surpris que l’on a pas obtenu le même automate que celui présenté sur la page 4? • Les deux automates sont équivalents. • Définition: Deux automates sont équivalents s’ils acceptent le même langage. • Il existe des algorithmes pour trouver un automate minimal (ayant le nombre minimum d’états) équivalent à un automate donné. Un tel algorithme pourrait être appliqué à l’automate obtenu sur la page précédente pour aboutir à l’automate minimal montré sur la page 7. • Question: Comment peut-on vérifier que l’automate de la page 7 est minimal ? – Réponse: Si le langage accepté pour chaque état (pris comme état initial) est différent des autres états, alors l’automate est minimal. – Inversement, on voit que les états A et C de l’automate de la page précédente acceptent le même langage. Donc, se sont des états équivalents, et l’automate n’est pas minimal. On peut fusionner les états équivalents et on obtient l’automate de la page 7. hiver 2003 SEG 2501 analyse lexicale 13