TD Compilation Expressions régulières - LISICramat/downloads/td1-compilation.pdf · TD...
Transcript of TD Compilation Expressions régulières - LISICramat/downloads/td1-compilation.pdf · TD...
TD CompilationExpressions régulières
Eric [email protected]
8 mai 2014
Durée : 2 heures
1 TravailExercice 1.Soit Σ = {0, 1}, décrire les langages caractérisés par les expressions régulières suivantes et trouver
une expression régulière plus simple quand c’est possible :— L1 = 0(0 + 1)∗0— L2 = ((ε+ 0)1∗)∗— L3 = (0 + 1)∗0(0 + 1)(0 + 1)— L4 = 0∗10∗10∗10∗— L5 = ((0 + 1)(0 + 1)(0 + 1))∗Les langages caractérisés par les expressions régulières suivantes sont-ils équivalents ?— L = 1(011)∗01 et L′ = (101)+
— L = (01)+ et L′ = (0101)∗— L = (01 + 10)∗ et L′ = ((0 + 1)(0 + 1))∗On démontrera les équivalences en développant des exemples.
Exercice 2.Soit Σ = {a, b, c, d, e}, un alphabet. Donner des expressions régulières pour caractériser les langages
suivants :— L1 est l’ensemble des mots sur Σ dont les lettres sont dans l’ordre alphabétique : aade, bcd,
acccddde, . . .— L2 est l’ensemble des mots sur Σ dont les occurrences de a, b et c sont dans l’ordre alphabétique
et où les lettres d et e peuvent s’insérer n’importe où : aedaebbbebdce, . . .— L3 est l’ensemble des mots sur Σ contenant au plus 4 lettres différentes : abcdaccb, aedee, bddcce,
. . .On ne cherchera pas obligatoirement l’expression la plus simple.
Exercice 3.Donner des expressions régulières pour les langages suivants.a. Soit Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,+,−, ∗}, un alphabet. Le langage Polynome est l’ensemble des
mots sur Σ représentant une expression polynômiale (non vide). Voici quelques exemples :— 5x3 − x+ x3 + 152
1
— −32x2 + x− 12 + x5
— 3 + 5x− x2
b. Soit Σ = {a, b, ..., z, 0, 1, 2..., 9, ”, ∗, /}, un alphabet. Le langage COM est l’ensemble des mots surΣ caractérisant les commentaires en langage C : ce sont des mots délimités par /* et */, ne contenantpas de */ à moins que ceux-ci soient entre guillemets. Voici quelques exemples :
— /* programme principal */— /* Un Commentaire se termine par "...*/" */— /* et non par "....*/ .... */ " */
2