Vous êtes sur la page 1sur 14

Langages Formels

Mini-cours sur les expressions regulières

Dr. Julia Buwaya

Automne 2022
Définition Expression régulière

Définition (2.3.1 Expression régulière)


Soit un alphabet Σ, une expression regulière (EXPREG ) définie sur
Σ est définie comme suit :
1. ∅ est une EXPREG dénotant l’ensemble vide,
2.  est une EXPREG dénotant l’ensemble {},
3. ∀ a ∈ Σ, a est une EXPREG dénotant l’ensemble {a},

4. si r et s sont des EXPREG dénotant les ensembles R et S ⇒


4.1 (r + s) est une EXPREG dénotant l’ensemble R ∪ S,
4.2 (rs) est une EXPREG dénotant l’ensemble R · S,
4.3 (r ∗ ) est une EXPREG dénotant l’ensemble R ∗ .

Exemple
r = (a (a + b)∗ ) génère L(r ) = {a} · ({a} ∪ {b})∗ = {a} · {a, b}∗
Langages Formels, automne 2022 1 Julia Buwaya, Université de Genève
Théorème 2.3.2

Théorème (2.3.2)
∃ une expression regulière r langage L est accepté par un

qui dénote le langage L AF (déterministe)

Langages Formels, automne 2022 2 Julia Buwaya, Université de Genève


Théorème 2.3.2

Démonstration (idée).
I Étant donné un AF qui accepte L.
I On numérote les états de l’AF de q1 , ..., qn .
I Soit Rijk l’ensemble de toutes chaı̂nes qui font passer l’AF de
l’état qi à qj sans passer par un état numéroté par une valeur
plus grande que k.
I Conformément à cela, rijk dénote l’expression régulière qui
décrit Rijk .
...

Langages Formels, automne 2022 3 Julia Buwaya, Université de Genève


Théorème 2.3.2
Démonstration (idée) suite (1).
I Alors Case de Base : rij0 décrit les chaı̂nes qui vont de qi à qj
sans passer par un etat. Nous avons :
I si i 6= j : rij0 = a1 + a2 + ... + ap
a1 , ..., ap
qi qj

ou rij0 = ∅ si aucun a exist

I si i = j : rij0 = a1 + a2 + ... + ap + 

a1 , ..., ap

qi
...
Langages Formels, automne 2022 4 Julia Buwaya, Université de Genève
Théorème 2.3.2
Démonstration (idée) suite (2).
I Induction : Par hypothèse d’induction, pour chaque i et j il
existe une expression régulière rijk qui dénote l’ensemble Rijk .
Ainsi
rijk+1 = ri(k+1)
k k
(r(k+1)(k+1) )∗ r(k+1)j
k
+ rijk

qui dénote l’ensemble Rijk+1 est une expression régulière.


I Le langage généré par notre AF du début de la preuve est
n n
L(r1f 1
+ ... + r1fp
)

où F = {qf1 , ...qfp } est l’ensemble des états finaux de l’AF et


q1 l’etat initial.

Langages Formels, automne 2022 5 Julia Buwaya, Université de Genève


Exemple
AF :
0 0,1
q1 q2 q3
0 1

Langages Formels, automne 2022 6 Julia Buwaya, Université de Genève


Exemple
AF :
0 0,1
q1 q2 q3
0 1

1
EXPREG :

Langages Formels, automne 2022 6 Julia Buwaya, Université de Genève


Exemple
AF :
0 0,1
q1 q2 q3
0 1

1
EXPREG :
I Rappel : rijk génère les
chaı̂nes de qi à qj sans
passer par un état numéroté
par une valeur plus grande
que k
I On cherche r12 3 + r3
13
I Formule : rijk+1 =
k
ri(k+1) k
(r(k+1)(k+1) )∗ r(k+1)j
k

k
+ rij
Langages Formels, automne 2022 6 Julia Buwaya, Université de Genève
Exemple
AF :
0 0,1
q1 q2 q3 Tableau pour le calcul récursif :
0 1
k=0 k=1 k=2
k
r11
1 k
r12
EXPREG : k
r13
I rijk génère les chaı̂nes de qi à k
r21
qj sans passer par un état k
r22
numéroté par une valeur k
r23
plus grande que k
I 3 + r3
On cherche r12 13 k
r31
k
r32
I Formule : rijk+1 =
k
r33
k
ri(k+1) k
(r(k+1)(k+1) )∗ r(k+1)j
k

+ rijk
Langages Formels, automne 2022 7 Julia Buwaya, Université de Genève
Exemple
AF :
0 0,1
q1 q2 q3 Tableau pour le calcul récursif :
0 1
k=0 k=1 k=2
k
r11 
1 k
r12 0
EXPREG : k
r13 1
I rijk génère les chaı̂nes de qi à k
r21 0
qj sans passer par un état k
r22 
numéroté par une valeur k
r23 1
plus grande que k
I 3 + r3
On cherche r12 13 k
r31 ∅
k
r32 0+1
I Formule : rijk+1 =
k
r33 
k
ri(k+1) k
(r(k+1)(k+1) )∗ r(k+1)j
k

+ rijk
Langages Formels, automne 2022 8 Julia Buwaya, Université de Genève
Exemple
AF :
0 0,1
q1 q2 q3 Tableau pour le calcul récursif :
0 1
k=0 k=1 k=2
k
r11  
1 k
r12 0 0
EXPREG : k
r13 1 1
I rijk génère les chaı̂nes de qi à k
r21 0 0
qj sans passer par un état k
r22   + 00
numéroté par une valeur k
r23 1 1 + 01
plus grande que k
I 3 + r3
On cherche r12 13 k
r31 ∅ ∅
k
r32 0+1 0+1
I Formule : rijk+1 =
k
r33  
k
ri(k+1) k
(r(k+1)(k+1) )∗ r(k+1)j
k

+ rijk
Langages Formels, automne 2022 9 Julia Buwaya, Université de Genève
Exemple
AF : Tableau pour le calcul récursif :
0 0,1
q1 q2 q3 k=0 k=1 k=2
0 1 k
r11   (00)∗
k
r12 0 0 0(00)∗
1 k
r13 1 1 0∗ 1
EXPREG :
k
r21 0 0 0(00)∗
I rk génère les chaı̂nes de k
r22   + 00 (00)∗
ij
qi à qj sans passer par k
r23 1 1 + 01 0∗ 1
un état numéroté par une
valeur plus grande que k k
r31 ∅ ∅ (0 + 1)(00)∗ 0
I 3 + r3
On cherche r12 13
k
r32 0+1 0+1 (0 + 1)(00)∗
k
r33    + (0 + 1)0∗ 1
I Formule : rijk+1 =
k
ri(k+1) k
(r(k+1)(k+1) )∗ r(k+1)j
k

+ rijk
Langages Formels, automne 2022 10 Julia Buwaya, Université de Genève
Exemple
AF : Tableau pour le calcul récursif :
0 0,1
q1 q2 q3 k=0 k=1 k=2
0 1 k
r11   (00)∗
k
r12 0 0 0(00)∗
1 k
r13 1 1 0∗ 1
EXPREG :
k
r21 0 0 0(00)∗
I rk génère les chaı̂nes de k
r22   + 00 (00)∗
ij
qi à qj sans passer par k
r23 1 1 + 01 0∗ 1
un état numéroté par une
valeur plus grande que k k
r31 ∅ ∅ (0 + 1)(00)∗ 0
I 3 + r3
On cherche r12 13
k
r32 0+1 0+1 (0 + 1)(00)∗
k
r33    + (0 + 1)0∗ 1
I Formule : rijk+1 =
k
ri(k+1) k
(r(k+1)(k+1) )∗ r(k+1)j
k 3
Alors r12 2
= r13 2 ∗ 2
(r33 2
) r32 + r12 = ... (voir
+ rijk cours p. 22)
Langages Formels, automne 2022 10 Julia Buwaya, Université de Genève

Vous aimerez peut-être aussi