0% ont trouvé ce document utile (0 vote)
267 vues2 pages

Analyse Lexicale et Expressions Régulières

Ce document présente trois exercices sur l'analyse lexicale. Le premier exercice demande d'écrire des expressions régulières pour les adresses email et les nombres à virgule flottante. Le deuxième exercice demande de définir les unités lexicales d'un mini-langage et leurs expressions régulières. Le troisième exercice porte sur l'analyse lexicale des commandes composées d'arguments et d'options.

Transféré par

kd cracken
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
267 vues2 pages

Analyse Lexicale et Expressions Régulières

Ce document présente trois exercices sur l'analyse lexicale. Le premier exercice demande d'écrire des expressions régulières pour les adresses email et les nombres à virgule flottante. Le deuxième exercice demande de définir les unités lexicales d'un mini-langage et leurs expressions régulières. Le troisième exercice porte sur l'analyse lexicale des commandes composées d'arguments et d'options.

Transféré par

kd cracken
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Section : PISI2\LSI2.

Matière : Compilation.
Responsable du cours : Mme Hager KAMMOUN BOUZAIENE.
Année Universitaire : 2022/2023.

TD 1 Analyse Lexicale
Exercice 1

1. Écrire l'expression régulière décrivant les adresses électroniques sous la forme suivante :

[Link]@[Link]

Nom et Prenom désignent des chaînes alphanumériques commençant par une majuscule.
site désigne une suite de caractères pouvant contenir l'un des caractères spéciaux suivants :-
, _. Enfin, extension est une suite de 2 ou 3 caractères minuscules.

2. Écrire l'expression régulière décrivant les nombres flottants dans un langage de


programmation. Un flottant est un entier suivi éventuellement d'un point et d'un entier.
Ce nombre peut éventuellement être suivi d'un exposant qui s'écrit e ou E suivi
éventuellement d'un signe + ou - plus d'un entier.

Ainsi, les nombres suivants sont corrects: 10, 10.4, 10.4e10 10.4E5, 10E-45.

Exercice 2

Le but est d’esquisser un analyseur lexical pour le mini-langage ci-dessous. Pour chaque
unité lexicale, on indique un numéro, sa valeur ainsi que l’expression régulière qui le définit
selon le tableau ci-dessous.

Type Valeur Expression régulière


Mots réservés 1 if, then, else, begin, end le mot réservé lui-même
Identificateur 2 le nom de l’identificateur lettre (lettre|chiffre)*
Entier 3 la valeur (-)? chiffre (chiffre)*
Opération arithmétique 4 l’opérateur +|-|*|/
Opération relationnelle 5 L’opérateur <|<=|>|>=|=|<>
Affectation 6 := :=
Chaîne de caractère 7 la valeur de la chaîne ‘n’importe quoi’
Commentaire 8 Ignoré (*n’importe quoi*)
Réel 9 la valeur (-)? entier . (entier)? (e
entier)?

On adopte de plus les conventions suivantes :


 Les caractères blancs, tabulation et retour chariot ne sont pas significatifs et peuvent
apparaître en nombre quelconque.
 Seules les 8 premières lettres des identificateurs sont significatives.

1
Questions :
1. Donner les automates déterministes pour les expressions régulières Identificateur,
Entier et Réel.
2. Donner la partie de l'analyseur lexical (en langage C), permettant la reconnaissance de
l’unité lexicale Identificateur.

Exercice 3
On souhaite écrire un analyseur lexical pour le langage de commandes suivant :
– une commande est composée d’un nom de commande, suivi d’une liste facultative
d’arguments, suivie d’une liste facultative d’options ;
– une liste d’arguments est une suite d’arguments ;
– une liste d’options est une suite non vide d’options encadrée par [ et ], à l’intérieur
de laquelle les options sont séparées par , ;
– une option est un caractère précédé d’un tiret ;
– un argument est un identificateur (respectant donc les règles permettant de définir
un identificateur comme pour le langage C), de même qu’un nom de commande.
Par exemple
– macom arg1 arg2 [-a,-b] est une commande avec arg1 et arg2 des arguments et a et
b des options.
– macom [-f] est une commande sans arguments
– macom est une commande sans arguments et sans options

1. Quelles sont les unités lexicales nécessaires à la description d’une commande ?


2. Donner pour chacune d’entre elles une description régulière qui la définit.
3. Donner un automate à état fini ainsi que la partie de l’analyseur lexical (en langage C)
permettant la reconnaissance de l’unité lexicale permettant de décrire le nom d’une
commande

Vous aimerez peut-être aussi