Documente Academic
Documente Profesional
Documente Cultură
erale Presentation gen ` Expressions reguli eres et automates nis lexicales Reconnaissance des unites Gestion des erreurs lexicales
Analyse Lexicale
2011-2012
1 / 24
Flot de caractres
Analyseur Lexical
Analyse Lexicale
2011-2012
2 / 24
Analyseur Lexical
Unit lexicale
Obtenir prochaine unit lexicale
Analyseur Syntaxique
` Lexeme
` ` dune une suite de caracteres du PS qui concorde avec le modele lexicale. unite
Description formelle ` des modeles const if (< + <= + = + <> + > + >=) lettre(lettre + chiffre) Chiffre+ + chiffre+ .chiffre+
2011-2012 4 / 24
Analyse Lexicale
Analyse Lexicale
2011-2012
5 / 24
Analyse Lexicale
2011-2012
6 / 24
Exemple = {a, b, c }. L1 est lensemble des mots ayant autant des a que des b L1 = {, c , cc , . . . , ab, abc , abcc , . . . , aacbb, . . .}
Analyse Lexicale
2011-2012
7 / 24
Analyse Lexicale
2011-2012
8 / 24
` Exemples-expressions reguli eres de a et b ainsi que le mot . (a + b) : tous les mots formes par 0 ou plusieurs b a + b .c : le mot a ou tous les mots formes suivis dun c . {a, c , bc , bbc , bbbc , bbbbc , . . .} (a + b) abb(a + b) : tous les mots sur {a, b} ayant le facteur abb.
Analyse Lexicale
2011-2012
9 / 24
Automates nis
Exemple introductif ` reconna On cherche a tre un langage
indiquer si la phrase quon a lu appartient bien au langage ou pas.
On commence par la reconnaissance de quelques mots particuliers On souhaite reconna tre le mot fee :
` les autres et accepter le mot une fois Lire les lettres les unes apres quon a bien lu fee . Passer alors par quatre etats : lorsquon a rien lu, lorsquon a lu f, lorsquon a lu fe puis lorsquon a lu fee.
Dbut
S0
S1
S2
S3
Analyse Lexicale
2011-2012
11 / 24
Automates nis
Exemple introductif ` reconna On cherche a tre un langage
indiquer si la phrase quon a lu appartient bien au langage ou pas.
On commence par la reconnaissance de quelques mots particuliers On souhaite reconna tre le mot fee :
` les autres et accepter le mot une fois Lire les lettres les unes apres quon a bien lu fee . Passer alors par quatre etats : lorsquon a rien lu, lorsquon a lu f, lorsquon a lu fe puis lorsquon a lu fee.
Dbut
S0
S1
S2
e u
S3 S4
Analyse Lexicale
2011-2012
11 / 24
Automates nis
Analyse Lexicale
2011-2012
12 / 24
Automates nis
Denition par (S , , , s0 , SF ) ou Un automate ni deterministe est donne `:
S est un ensemble ni detats ; est un alphabet ni ; : S S est la fonction de transition ; s0 est letat initial ; SF est lensemble des etats naux.
S0
S1
S2
S3
Analyse Lexicale
2011-2012
13 / 24
Dbut
ee par le symbole permet de reculer dune Laction speci ` la consommation dun symbole position sur le chier source apres autre quune lettre ou un chiffre.
Analyse Lexicale
2011-2012
14 / 24
Analyse Lexicale
2011-2012
16 / 24
Ou ` si, alors, sinon, oprel, id et nb engendrent les ensembles de par les denitions ` cha nes donnees reguli eres suivantes :
si si, alors alors sinon sinon oprel < | <= | = | <> | > | >=
Yousra Bendaly Hlaoui (ISITCOM) Analyse Lexicale
` N Lexemes Type Mots cles 1 a1 ... si 2 b ... alors 3 ... ... Lanalyseur lexical retourne la sequence suivante dunites lexicales avec leurs attributs : si 0 id 1 oprel PGQ id 2 alors 0 id 1 opaff := nb 10 pv ;
Analyse Lexicale
2011-2012
18 / 24
Analyse Lexicale
2011-2012
19 / 24
Pour ecrire lanalyseur lexical dun programme source, il suft, alors, decrire un programme simulant lautomate reconnaissant le langage avec lequel est ecrit le programme source. er e. Il sagit de produire une implementation de lautomate gen Il y a essentiellement deux types dimplementation :
Implementation manuelle :
simulation du travail de lautomate
Implementation systematique :
conversion de lautomate en un programme ou donne ` chaque etat ` un segment du code. lieu a
Analyse Lexicale
2011-2012
20 / 24
Implementation manuelle c=getchar(); switch(c) { case > : c=getchar(); if(c===) return(oprel,PGE); else return(oprel,PGQ); break; case = : return(oprel,EGA); break; case ... ...
Analyse Lexicale
2011-2012
21 / 24
Erreurs lexicales
au niveau lexical : lAL a une Peu derreurs peuvent etre detect ees ` locale du programme source. vision tres a ` une suite Les erreurs se produisent lorsque lAL est confronte ` ` aucun des modeles ` de caracteres qui ne correspond a dunites lexicales quil reconna t. Exemples
1
LAL detecte esle dans un programme C : sagit t-il du mot clef else mal ecrit ou dun identicateur ?
` de lunite lexicale comme la cha ne correspond au modele IDENT :lAL ne detecte pas derreurs ` lAS quil a reconnu un IDENT :lAS detecte lAL transmet a lerreur
LAL rencontre 1i : sagit t-il du chiffre 1 suivi de lidenticateur i ou dune erreur de frappe. lAL signale juste que la cha ne 1i ne ` une unite lexicale correspond pas a
Analyse Lexicale 2011-2012 23 / 24
Erreurs lexicales
Gestion des erreurs lexicales a ` une suite de caracteres ` Lorsque lAL est confronte qui ne ` aucun de ses modeles, ` corespondent a il suit lune des strategie suivantes :
1
` ` Mode panique : il ignore les caracteres qui posent des problemes ` lutilisateur quil ignore ces caracteres. ` et il continue en signalant a ` ou echange Transformation du texte source : il remplace, insere ` pour obtenir un mot qui ne pose de problemes. ` un caractere
Analyse Lexicale
2011-2012
24 / 24