Vous êtes sur la page 1sur 34

Faculté des Sciences Agadir

Département Informatique
Filière SMI
Semestre 5

Compilation

Par Mustapha Machkour


Chapitre 3
Comprendre les concepts et les notions de l'analyse
lexicale 2
Les automates
Objectifs
 Automate
 Automate fini déterministe
 Implémentation d'un automate

Compilation FS Agadir SMI 20-21 3


 Les automates finis A.F.
Soit L un langage défini par une E.R.
Soit x une chaîne.
Est ce que x appartient à L?
 Moyen pour reconnaître les chaînes de L?
 Automates finis =A.F.

Compilation FS Agadir SMI 20-21 4


 Exemple
Langage des identificateurs est défini par la
définition régulière ID donnée par
ID  Lettre(Lettre|Chiffre)+
Est ce que les chaînes suivantes font partie du
lexique de ID?
- surface
- x1
- 1y

Compilation FS Agadir SMI 20-21 5


 Liens automate/E.R./langage
Nous considérons le schéma suivant

Compilation FS Agadir SMI 20-21 6


 Automate fini : AF
AF = 5-uplets (E, A, T, I, F), avec

- E=ensemble fini d'éléments appelés des états;

- A=ensemble de symboles qui forment les mots ou les


chaînes=Alphabet;

- T=fonction de transitions qui associe à chaque paire de E x A


un élément de E
T: E x A  E
- I=état initial appartenant à E (début de l'automate);

- F=ensemble non vide des états terminaux ou finaux


(terminaison de l'automate).

Compilation FS Agadir SMI 20-21 7


 Exemple

- E={e1, e2, e3} =ensemble composé de 3 états

- A={a1, a2} =alphabet avec 2 symboles


- I={e1} est l'état initial

- La fonction de transitions est définie par


T(e1, a1)= {e2}
T(e1,a2)={e3}

- F={e2,e3} ensembles des états terminaux.

Compilation FS Agadir SMI 20-21 8


 Représentation graphique d’un automate

État initial : 3 façons

Nom état initial

Compilation FS Agadir SMI 20-21 9


 Représentation graphique d’un automate

État final

Nom état final

Compilation FS Agadir SMI 20-21 10


 Représentation graphique d’un automate

État intermédiaire

Nom intermédiaire

Compilation FS Agadir SMI 20-21 11


 Représentation graphique d’un automate

Transition

symbole

Compilation FS Agadir SMI 20-21 12


 Exemple de représentation graphique
-E={e1, e2, e3} =ensemble composé de 3 états
-A={a1, a2} =alphabet avec 2 symboles
-I={e1} est l'état initial
-La fonction de transitions est définie par
T(e1, a1)= {e2}
T(e1,a2)={e3}
-F={e2,e3} ensembles des états terminaux
Représentation graphique

Compilation FS Agadir SMI 20-21 13


 Remarque
l'automate suivant :

permet de reconnaître les chaînes a1 et a2.

Compilation FS Agadir SMI 20-21 14


 Donner la représentation graphique de
l'automate suivant :
-E={e1, e2, e3} =ensemble composé de 3 états
-A={a, b} =alphabet avec 2 symboles
-I={e1} est l'état initial
-La fonction de transitions est définie par
T(e1, a) = {e2}
T(e1,b) = {e3}
T(e2,b) = {e3}
-F={e2,e3} ensembles des états terminaux.
 Quelles sont les chaînes reconnues par cet
automate?

Compilation FS Agadir SMI 20-21 15


 Donner la représentation graphique de l'automate suivant :

-E={e1, e2, e3} =ensemble composé de 3 états


-A={a, b} =alphabet avec 2 symboles
-I={e1} est l'état initial
-La fonction de transitions est définie par
T(e1, a) = {e2}

Compilation FS Agadir SMI 20-21 16


 Donner la représentation graphique de l'automate suivant :

-E={e1, e2, e3} =ensemble composé de 3 états


-A={a, b} =alphabet avec 2 symboles
-I={e1} est l'état initial
-La fonction de transitions est définie par
T(e1, a) = {e2}
T(e1,b) = {e3}

Compilation FS Agadir SMI 20-21 17


 Donner la représentation graphique de l'automate suivant :

-E={e1, e2, e3} =ensemble composé de 3 états


-A={a, b} =alphabet avec 2 symboles
-I={e1} est l'état initial
-La fonction de transitions est définie par
T(e1, a) = {e2}
T(e1,b) = {e3}
T(e2,b) = {e3}

Compilation FS Agadir SMI 20-21 18


 Donner la représentation graphique de l'automate suivant :

-E={1, 2, 3} =ensemble composé de 3 états


-A={a, b} =alphabet avec 2 symboles
-I={1} est l'état initial
-La fonction de transitions est définie par
T(1, a) = {2}
T(1,b) = {3}
T(3,b) = {3}
-F={2,3} états terminaux.
 Quelles sont les chaînes reconnues par cet automate?

Compilation FS Agadir SMI 20-21 19


 Donner la représentation graphique de l'automate suivant :

-E={1, 2, 3} =ensemble composé de 3 états


-A={a, b} =alphabet avec 2 symboles
-I={1} est l'état initial
-La fonction de transitions est définie par
T(1, a) = {2}
T(2,b) = {3}
T(3,b) = {3}
-F={3} état terminal.
 Quelles sont les chaînes reconnues par cet automate?

Compilation FS Agadir SMI 20-21 20


 Donner la représentation graphique de l'automate suivant :

-E={1, 2, 3} =ensemble composé de 3 états


-A={a, b} =alphabet avec 2 symboles
-I={1} est l'état initial
-La fonction de transitions est définie par
T(1, a) = {2}
T(2,b) = {3}
T(3,a) = {2}
-F={3} état terminal.
 Quelles sont les chaînes reconnues par cet automate?

Compilation FS Agadir SMI 20-21 21


 Donner la représentation graphique de
l'automate suivant :
-E={1, 2, 3} =ensemble composé de 3 états
-A={a, b} =alphabet avec 2 symboles
-I={1} est l'état initial
-La fonction de transitions est définie par
T(1, a) = {2}
T(1,a) = {3}
T(3,b) = {3}
-F={2,3} états terminaux.
 Quelles sont les chaînes reconnues par cet
automate?

Compilation FS Agadir SMI 20-21 22


 Exercice
Proposer un automate pour ((a|b)*cb)

Compilation FS Agadir SMI 20-21 23


Réponse

b
c 1 b
0 2

Compilation FS Agadir SMI 20-21 24


 Cas d'un identificateur

Lettre|chiffre

lettre 1
0

Compilation FS Agadir SMI 20-21 25


 Cas d'un identificateur

Lettre|chiffre

lettre 1
0

blanc

Compilation FS Agadir SMI 20-21 26


 Exercice
Proposer un automate pour le cas d'un entier.

Compilation FS Agadir SMI 20-21 27


 Cas d'un entier

chiffre

chiffre 1
0

blanc

Compilation FS Agadir SMI 20-21 28


 Implémentation d'un A.F.
- Programme
- Matrice de transitions

Compilation FS Agadir SMI 20-21 29


• buffer=&Buffer[0];
• while(1) {
• c = lireChar();
• switch(etat){
• case: 0
• switch(type(c)){
• buffer*=c;buffer++;
• case ALPHA: etat=1;break;
• case NUMER: etat=2;break;
• case OPARITH-{/}: etat=3; break;
• case '<': etat=4; break;
• case '>': etat=6; break;
• case '=': etat=8; break;
• case ':': etat=9; break;
• case ';': etat=11; break;
• case '/': etat=12; break;
• default: erreur;
• }
• break;
• case 1:
• if (type(c) == ALPHA ou type(c) == NUMER) {
• buffer*=c;buffer++;
• etat=1;
• }
• else {
• buffer*='\0'; remettreCar();
• return(ajouter_token(Buffer,TYPE_IDENT));
• }
• break;
Compilation FS Agadir SMI 20-21 30
• break;
• case 2:
• if (type(c) == NUMER){
• buffer*=c;buffer++;
• etat=2;
• }
• else {
• buffer*='\0';remettreCar();
• return(ajouter_token(Buffer,TYPE_NUMER));
• }
• break;
• case 3:
• return(ajouter_token(Buffer,TYPE_OPER)); break;
• case 4:
• if (c == '=') {
• buffer*=c;buffer++;
• etat = 5;
• } else {
• remettreCar();
• return(est-dans("<"));
• }
• …
Compilation FS Agadir SMI 20-21 31
 Cas d'une matrice de transitions
a e2
e1
b e3

états a b

e1 e2 e3

e2

e3

Compilation FS Agadir SMI 20-21 32


 Automate avec un programme
buffer=&Buffer[0];
while(1) {
c = lireChar();
switch(etat){
case: 0
switch(c){

case 'a': etat=1;break;


case 'b': etat=2;break;
default: erreur;
}
break;
case 1:

return(ajouter_token("a"));
case 2:
return(ajouter_token("b"));

Compilation FS Agadir SMI 20-21 33


Résumé
 Automate
 Automate fini déterministe
 Implémentation d'un automate

Compilation FS Agadir SMI 20-21 34

Vous aimerez peut-être aussi