Vous êtes sur la page 1sur 2

TD1 de Compilation TD n°1: Analyse lexicale

USDB - Dept Informatique - Licence SI/S5 /2023-2024 Mr HAMMOUDA M.

Exercice 1
1. Dans les cas ci-dessous, dire si le mot donné appartient au langage décrit par l'expression régulière:
- 10100010 et (0*10)* - 01110110 et (0(11)*)* - 000111100 et ((01111)*(00)*)*

2. Décrire en termes usuels les langages représentés par les expressions régulières :
- (110)* - (010)*(1)

3. Les expressions suivantes sont-elles équivalentes, l'une incluse dans l'autre ou différentes? (argumentez)
- a*b* et (ab)* - b (bb)* et (bb)* (b)

4. Déterminer tous les mots de longueur maximale 4 qui appartiennent au langage


dénoté par chacune des expressions régulières suivantes :

(i) (bba)* (ii) ab*b (iii) (ab)*abb (iv) (aε)*bb*

Exercice 2
On considère l'alphabet L={a,b}. Donner les expressions régulières correspondantes aux propriétés
suivantes:
- les mots qui ne contiennent aucun b - les mots qui ne contiennent pas ab;
- les mots qui contiennent au moins un a; - les mots de longueur paire;
- le langage L={bnap} avec n et p entiers et au moins l'un des deux est impair;

Exercice 3
Calculer la ε-fermeture( {1}) et la ε-fermeture({8}) de l'automate A, minimiser B et Déterminiser C

(A) (B) (C)

6
ε a 1 2 a
b a
5 8
b 4 3
ε 7 ε a
5 b 2
ε
c b
ε ε b
a a
a a 1
1 2 ε 3 3
4 a
ε

Exercice 4
- Déterminiser et minimiser, si nécessaire, l'AFN suivant:
ε
b 2

0 a 1 b
a
b 3 a

- Déduire l'expression régulière reconnaissant le langage

1
TD1 de Compilation TD n°1: Analyse lexicale
USDB - Dept Informatique - Licence SI/S5 /2023-2024 Mr HAMMOUDA M.
Exercice 5
On considère l’automate A suivant:
a/b
a/b
0
a 1
b a 3
2
1 2 3
ε

1. Dire pourquoi A n’est pas déterministe. Donner, sans justification, une expression régulière
équivalente.

2. Déterminiser A et représenter le graphe de l’automate déterministe D obtenu.

3. Minimiser l’automate D après l’avoir éventuellement complété. Dessiner l’automate obtenu.

Exercice 6
Dans chacun des cas suivants, donner le plus petit automate déterministe reconnaissant le langage sur
l'alphabet {0,1}:
- l'ensemble des mots se terminant par 00,
- l'ensemble des mots ayant au moins 3 zéros consécutifs,
- l'ensemble des mots dont l'avant dernier symbole est un 1.

Exercice 7
On définit le langage simplifié suivant au moyen de règles BNF:

<phrase> ::= <déclaration> | <instruction>


<déclaration> ::= <identificateur> : <type> ;
<type> ::= réel | entier
<instruction> ::= <identificateur> = <nombre> ;
<nombre> ::= <nombre entier> | <nombre réel>

Les identificateurs sont des unités lexicales constituées d’une lettre.


Les nombres entiers sont des unités lexicales constituées d'un chiffre et les nombres réels des unités
lexicales constituées de deux chiffres séparés par une virgule
L’espace est sans signification mais ne peut se trouver à l’intérieur d’une unité lexicale.

1. Rappeler les différentes phases de l’analyse d’un programme et leur rôle.


2. Définir sous forme de définitions régulières identificateur, nombre entier et nombre réel.
3. Quelles sont les unités lexicales du langage ?
4. Faire l’analyse lexicale de chaque ligne (phrase) du programme :

A : reel $
B : entier ;
= A 5,3,2 ;
A B = 6,2 ;
C=4;

5. Ecrire en Flex l'analyseur lexical de ce langage

Vous aimerez peut-être aussi