TD1 24-25
TD1 24-25
TD1 24-25
TD1
Filière : Sciences Mathématiques et Informatique
Objectifs
Se familiariser avec :
a. Les langages formels
b. Les langages réguliers
c. Opérations sur les langages
d. Simplification des expressions régulières
Exercice 1
1. Quelles sont les différences entre un langage interprété et un langage compilé ?
2. Donner la définition de l’analyse lexicale.
3. Définir ce qui est l’analyse syntaxique.
4. Définir ce qui est l’analyse sémantique.
5. Donner un exemple d’optimisation de code.
Exercice 2
On considère les unités lexicales suivantes :
ID, NUM, REAL, IF, COMMA, LPAR, RPAR, EQ, NOTEQ, INF, RETURN, SEMI, LBRACE, RBRACE, VOID, MAIN,
PLUS, RELOP, ELSE et EOF.
1. Chercher les lexèmes et les unités lexicales associées dans le programme suivant :
void main()
{
int z=1;
}
2. Chercher les lexèmes et les unités lexicales associées dans le programme suivant :
int main() {
int x, y;
x=1 ;
y=2 ;
z=x+y;
return z;
}
Exercice 3
Donner une description en français des langages dénotés par les expressions régulières suivantes :
1. a∗ + b∗
2. ((a + b)(a + b))∗
3. (a + b)∗a(a + b)∗b(a + b)∗
4. (a∗b∗)∗
5. (ab) ∗
1
COMPILATION
Exercice 4
Donnez une expression régulière qui accepte chacun des langages suivants (définis sur l’alphabet
∑ ):
1. Toutes les chaînes qui se terminent par 00.
2. Toutes les chaînes dont le 10ème symbole, compté à partir de la fin de la chaîne, est un 1.
3. Ensemble de toutes les chaînes dans lesquelles chaque paire de 0 apparaît devant une paire de 1.
4. Ensemble de toutes les chaînes ne contenant pas 101.
5. Tous les nombres binaires divisibles par 4.
Exercice 5
Calculer LM pour les ensembles suivants :
Exercice 6
1. Proposer une expression régulière pour les chiffres.
2. Proposer une expression régulière pour les lettres.
3. Proposer une expression régulière pour les identificateurs.
4. Proposer une expression régulière pour les nombres entiers.
5. Proposer une expression régulière pour les nombres binaires divisibles par 2.
6. Proposer une expression régulière pour les nombres binaires contenant au moins deux un.
7. Donner l’expression régulière qui reconnaît les chaînes a, b ou c.
8. Donner l’expression régulière qui reconnaît les chaînes commençant par a suivi d’une combinaison quelconque
de a, b ou c.