Vous êtes sur la page 1sur 49

Théorie des langages

Alphabets
Elise Bonzon
http://web.mi.parisdescartes.fr/vbonzon/
elise.bonzon@parisdescartes.fr

Théorie des langages


1 / 29
N
Alphabets et langages

Alphabets et langages

Alphabets
Opérations sur les mots
Monoı̈de
Langages

Théorie des langages


2 / 29
N
Alphabets et langages

Alphabets et langages

Alphabets
Opérations sur les mots
Monoı̈de
Langages

Théorie des langages


3 / 29
N
Alphabets et langages

Alphabet

Alphabet
Un alphabet est un ensemble fini de symboles.
Exemples :
A = {0, 1}
Σ = {a, b, c}
Θ = {if , then, else, a, b}
F = {→, ←, ↑, ↓}

Théorie des langages


4 / 29
N
Alphabets et langages

Mot

Mot
Un mot sur l’alphabet X est une séquence finie et ordonnée, éventuelle-
ment vide, d’éléments de l’alphabet.
C’est une concaténation de lettres.
Par exemple, abbac et ba sont deux mots de l’alphabet {a, b, c}.

Théorie des langages


5 / 29
N
Alphabets et langages

Mot

Mot
Un mot sur l’alphabet X est une séquence finie et ordonnée, éventuelle-
ment vide, d’éléments de l’alphabet.
C’est une concaténation de lettres.
Par exemple, abbac et ba sont deux mots de l’alphabet {a, b, c}.

Mot vide
Le mot vide, noté , correspond à la suite de symboles vide.

Théorie des langages


5 / 29
N
Alphabets et langages

Longueur d’un mot

Longueur d’un mot


La longueur d’un mot w est le nombre de symboles constituant ce
mot. On la note |w |.
Le mot vide est de longueur 0.
Par exemple, |abbac| = 5, |ba| = 2 et || = 0.

Théorie des langages


6 / 29
N
Alphabets et langages

Longueur d’un mot

Longueur d’un mot


La longueur d’un mot w est le nombre de symboles constituant ce
mot. On la note |w |.
Le mot vide est de longueur 0.
Par exemple, |abbac| = 5, |ba| = 2 et || = 0.

Ensemble de mots
L’ensemble de mots sur un alphabet X est noté X ∗ (fermeture tran-
sitive).
Par exemple, si X = {a, b, c},
X ∗ = {, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, ...}

Théorie des langages


6 / 29
N
Alphabets et langages

Notations

Soit w ∈ X ∗
|w | est la longueur de w
X est l’alphabet
x est une lettre de X
|w |x est le nombre d’occurences de x dans w .
Exemple, avec X = {a, b}
|abb|a = 1
|abb|b = 2

Théorie des langages


7 / 29
N
Alphabets et langages

Alphabets et langages

Alphabets
Opérations sur les mots
Monoı̈de
Langages

Théorie des langages


8 / 29
N
Alphabets et langages

Concaténation (produit)

Concaténation (produit) de lettres


Soit un alphabet X et w1 , w2 ∈ X ∗ tels que

w1 = x1 x2 x3 . . . xn ∀i ∈ {1, . . . , n}, xi ∈ X
w2 = y1 y2 y3 . . . yp ∀i ∈ {1, . . . , p}, yi ∈ X
w1 et w2 sont des concaténation de lettres (mots).

Concaténation (produit) de mots


Soit un alphabet X et w1 , w2 ∈ X ∗ des concaténation de lettres. Alors
w tel que :

w = w1 .w2 = x1 x2 x3 . . . xn y1 y2 y3 . . . yp

est une concaténation de mots.

Théorie des langages


9 / 29
N
Alphabets et langages

Concaténation (produit)

Propriétés
Le produit est associatif

∀w1 , w2 , w3 ∈ X ∗ , w1 .(w2 .w3 ) = (w1 .w2 ).w3


= w1 .w2 .w3

 est l’élément neutre du produit

∀w ∈ X ∗ , .w = w . = w

∀w , z ∈ X ∗ , |w .z| = |w | + |z|
Le produit n’est pas commutatif

Théorie des langages


10 / 29
N
Alphabets et langages

Puissance

Puissance
Soit un alphabet X et w ∈ X ∗ .

 si n = 0
wn =
w .w n−1 si n > 0

Théorie des langages


11 / 29
N
Alphabets et langages

Puissance

Puissance
Soit un alphabet X et w ∈ X ∗ .

 si n = 0
wn =
w .w n−1 si n > 0

Par exemple, soit X = {a, b} et w = abb


w0 = 
w 1 = abb
w 2 = w .w = abbabb
w 3 = w .w 2 = abbabbabb

Théorie des langages


11 / 29
N
Alphabets et langages

Egalité

Egalité de deux mots


Deux mots sont égaux s’ils sont de même longueur et s’ils ont des
lettres identiques de positionnements identiques.
Soit un alphabet X et w1 , w2 ∈ X ∗ tels que

w1 = x1 x2 x3 . . . xn ∀i ∈ {1, . . . , n}, xi ∈ X
w2 = y1 y2 y3 . . . yp ∀i ∈ {1, . . . , p}, yi ∈ X

On a w1 = w2 si et seulement si p = n et ∀i ∈ [1, n], xi = yi .

Théorie des langages


12 / 29
N
Alphabets et langages

Préfixe et suffixe

Préfixe, suffixe
Soit un alphabet X et w , u ∈ X ∗ .
u est un préfixe de w si et seulement si ∃v ∈ X ∗ tel que w = u.v

Théorie des langages


13 / 29
N
Alphabets et langages

Préfixe et suffixe

Préfixe, suffixe
Soit un alphabet X et w , u ∈ X ∗ .
u est un préfixe de w si et seulement si ∃v ∈ X ∗ tel que w = u.v
u est un suffixe de w si et seulement si ∃v ∈ X ∗ tel que w = v .u

Théorie des langages


13 / 29
N
Alphabets et langages

Préfixe et suffixe

Préfixe, suffixe
Soit un alphabet X et w , u ∈ X ∗ .
u est un préfixe de w si et seulement si ∃v ∈ X ∗ tel que w = u.v
u est un suffixe de w si et seulement si ∃v ∈ X ∗ tel que w = v .u
Soit X = {a, b}, w = babb
Les préfixes de w sont , b, ba, bab, babb
Les suffixes de w sont , b, bb, abb, babb

Théorie des langages


13 / 29
N
Alphabets et langages

Préfixe et suffixe propres

Préfixe et suffixe propres


Soit un alphabet X et w , u ∈ X ∗ .
u est un préfixe propre de w si et seulement si u est un préfixe de w
et u est différent de w .
u est un suffixe propre de w si et seulement si u est un suffixe de w
et u est différent de w .

Théorie des langages


14 / 29
N
Alphabets et langages

Préfixe et suffixe propres

Préfixe et suffixe propres


Soit un alphabet X et w , u ∈ X ∗ .
u est un préfixe propre de w si et seulement si u est un préfixe de w
et u est différent de w .
u est un suffixe propre de w si et seulement si u est un suffixe de w
et u est différent de w .
Soit X = {a, b}, w = babb
Les préfixes propres de w sont , b, ba, bab
Les suffixes propres de w sont , b, bb, abb

Théorie des langages


14 / 29
N
Alphabets et langages

Miroir d’un mot

Miroir d’un mot


Soit un alphabet X et w ∈ X ∗ tel que w = x1 x2 x3 . . . xn , avec ∀i ∈
{1, . . . , n}, xi ∈ X .
Le miroir de w , noté w̃ , est défini par

w̃ = xn xn−1 . . . x2 x1

Théorie des langages


15 / 29
N
Alphabets et langages

Miroir d’un mot

Miroir d’un mot


Soit un alphabet X et w ∈ X ∗ tel que w = x1 x2 x3 . . . xn , avec ∀i ∈
{1, . . . , n}, xi ∈ X .
Le miroir de w , noté w̃ , est défini par

w̃ = xn xn−1 . . . x2 x1

Définition récursive :

w si w = 
w̃ =
ũ.a si w = a.u, avec a ∈ X

Théorie des langages


15 / 29
N
Alphabets et langages

Alphabets et langages

Alphabets
Opérations sur les mots
Monoı̈de
Langages

Théorie des langages


16 / 29
N
Alphabets et langages

Monoı̈de

Monoı̈de
Un ensemble E muni d’une opération interne associative (notée .) et
possédant un élément neutre est un monoı̈de, noté M = hE , .i.

Théorie des langages


17 / 29
N
Alphabets et langages

Monoı̈de

Monoı̈de
Un ensemble E muni d’une opération interne associative (notée .) et
possédant un élément neutre est un monoı̈de, noté M = hE , .i.
Exemples :
hIN, +i
hIN, ∗i
hX ∗ , .i : l’ensemble des mots sur l’alphabet X muni de l’opération de
produit est un monoı̈de.

Théorie des langages


17 / 29
N
Alphabets et langages

Sous-monoı̈de

Sous-monoı̈de
Soit M = hE , .i un monoı̈de. M 0 est un sous-monoı̈de de M si M 0 =
hE 0 , .i, avec E 0 ⊆ E , est un monoı̈de pour la même loi de composition
interne et le même élément neutre.

Théorie des langages


18 / 29
N
Alphabets et langages

Sous-monoı̈de

Sous-monoı̈de
Soit M = hE , .i un monoı̈de. M 0 est un sous-monoı̈de de M si M 0 =
hE 0 , .i, avec E 0 ⊆ E , est un monoı̈de pour la même loi de composition
interne et le même élément neutre.
Pour montrer que M 0 est un sous-monoı̈de de M, il suffit de montrer que
1. l’élément neutre de M appartient à M 0
2. la loi de composition interne est stable pour E 0 : ∀x, y ∈ E 0 , x.y ∈ E 0

Théorie des langages


18 / 29
N
Alphabets et langages

Monoı̈de libre

Ensemble de générateurs
Soit M = hE , .i un monoı̈de. Un ensemble de générateurs de M est
un sous ensemble E1 , avec E1 ⊂ E , tel que tout élément de E , sauf
l’élément neutre, est exprimable à l’aide d’une composition de E1 .

Théorie des langages


19 / 29
N
Alphabets et langages

Monoı̈de libre

Ensemble de générateurs
Soit M = hE , .i un monoı̈de. Un ensemble de générateurs de M est
un sous ensemble E1 , avec E1 ⊂ E , tel que tout élément de E , sauf
l’élément neutre, est exprimable à l’aide d’une composition de E1 .
Exemple :
{1} est un générateur de hIN, +i
→ Tout entier peut être exprimé comme une somme de 1
L’ensemble des nombres premiers est un générateur de hIN, ∗i
→ Tout entier peut être exprimé comme un produit de nombre premiers

Théorie des langages


19 / 29
N
Alphabets et langages

Monoı̈de libre

Ensemble de générateurs indépendants


Soit M = hE , .i un monoı̈de. Un ensemble de générateurs indépen-
dants de M est un ensemble de générateurs tels que tout élément de
E sauf l’élément neutre est exprimable d’une et d’une seule façon sous
forme d’une composition de générateurs.

Théorie des langages


20 / 29
N
Alphabets et langages

Monoı̈de libre

Ensemble de générateurs indépendants


Soit M = hE , .i un monoı̈de. Un ensemble de générateurs indépen-
dants de M est un ensemble de générateurs tels que tout élément de
E sauf l’élément neutre est exprimable d’une et d’une seule façon sous
forme d’une composition de générateurs.
Exemple :
{1} est un générateur indépendant de hIN, +i
→ Tout entier peut être exprimé d’une et d’une seule façon comme une
somme de 1
L’ensemble des nombres premiers n’est pas un générateur indépendant de
hIN, ∗i
→ Tout entier peut être exprimé comme un produit de nombre premiers, mais
il y a plusieurs décompositions possibles. Par exemple,
12 = 2 ∗ 3 ∗ 2 = 2 ∗ 2 ∗ 3.

Théorie des langages


20 / 29
N
Alphabets et langages

Monoı̈de libre

Monoı̈de libre
Un monoı̈de possédant un ensemble de générateurs indépendants X
sera dit libre et sera noté X ∗ .

Théorie des langages


21 / 29
N
Alphabets et langages

Monoı̈de libre

Monoı̈de libre
Un monoı̈de possédant un ensemble de générateurs indépendants X
sera dit libre et sera noté X ∗ .
Soit X un alphabet. Le monoı̈de hX ∗ , .i est un monoı̈de libre.

Théorie des langages


21 / 29
N
Alphabets et langages

Alphabets et langages

Alphabets
Opérations sur les mots
Monoı̈de
Langages

Théorie des langages


22 / 29
N
Alphabets et langages

Langage

Langage
Un langage sur un alphabet X est une partie de X ∗ . C’est donc un
ensemble de mots.
L ⊂ X ∗ où L ∈ P(X ∗ )

Théorie des langages


23 / 29
N
Alphabets et langages

Langage

Langage
Un langage sur un alphabet X est une partie de X ∗ . C’est donc un
ensemble de mots.
L ⊂ X ∗ où L ∈ P(X ∗ )

Soit X = {a, b} un alphabet.


∅ est un langage
{} est un langage
{a, ba, bba} est un langage
{w ∈ X ∗ |w = an , n ∈ IN} est un langage

Théorie des langages


23 / 29
N
Alphabets et langages

Opérations sur les langages

Union : A, B ⊆ X ∗ , A ∪ B = {w ∈ X ∗ |w ∈ A ou w ∈ B}
Associative
Commutative
Elément neutre : ensemble vide ∅
Notée + dans la théorie des langages
Intersection : A, B ⊆ X ∗ , A ∩ B = {w ∈ X ∗ |w ∈ A et w ∈ B}
Associative
Commutative
Elément neutre X ∗
Différence : A, B ⊆ X ∗ , A \ B = {w ∈ X ∗ |w ∈ A et w 6∈ B}
Complémentaire : A ⊆ X ∗ , A = X ∗ \ A = {w ∈ X ∗ |w 6∈ A}

Théorie des langages


24 / 29
N
Alphabets et langages

Opérations sur les langages

Egalité de langages
Deux langages A, B ⊆ X ∗ sont égaux, noté A = B, si et seulement si
A ⊆ B et B ⊆ A.

Théorie des langages


25 / 29
N
Alphabets et langages

Opérations sur les langages

Egalité de langages
Deux langages A, B ⊆ X ∗ sont égaux, noté A = B, si et seulement si
A ⊆ B et B ⊆ A.

Produit de langages
Soit deux langages A, B ⊆ X ∗ . Le produit de A et B est noté A ◦ B =
{u.v |u ∈ A et v ∈ B}.

Théorie des langages


25 / 29
N
Alphabets et langages

Opérations sur les langages

Attention!
◦ produit de langages
. produit de mots
⇒ Par la suite, nous les noterons de la même façon, le contexte fera la
différence.

Théorie des langages


26 / 29
N
Alphabets et langages

Opérations sur les langages

Attention!
◦ produit de langages
. produit de mots
⇒ Par la suite, nous les noterons de la même façon, le contexte fera la
différence.
Soit un alphabet X = {a, b}, un langage A = {, a, ab} et un langage
B = {b, ba}.
A ◦ B = A.B = AB = {b, ba, ab, aba, abb, abba}
B ◦ A = B.A = BA = {b, ab, bab, ba, baa, baab}
⇒ AB 6= BA

Théorie des langages


26 / 29
N
Alphabets et langages

Opérations sur les langages


Théorème
Le produit de langages est distributif par rapport à l’union.

∀A, B, C ⊆ X ∗ A.(B ∪ C ) = (A.B) ∪ (A.C )


(B ∪ C ).A = (B.A) ∪ (C .A)

Théorie des langages


27 / 29
N
Alphabets et langages

Opérations sur les langages


Théorème
Le produit de langages est distributif par rapport à l’union.

∀A, B, C ⊆ X ∗ A.(B ∪ C ) = (A.B) ∪ (A.C )


(B ∪ C ).A = (B.A) ∪ (C .A)

Ce théorème reste vrai pour des unions infinies


S∞ S∞
∀A, Bi ⊆ X ∗ A.( S∞ i=1 Bi ) = S∞ i=1 (A.Bi )
( i=1 Bi ).A = i=1 (Bi .A)

Théorie des langages


27 / 29
N
Alphabets et langages

Opérations sur les langages


Théorème
Le produit de langages est distributif par rapport à l’union.

∀A, B, C ⊆ X ∗ A.(B ∪ C ) = (A.B) ∪ (A.C )


(B ∪ C ).A = (B.A) ∪ (C .A)

Ce théorème reste vrai pour des unions infinies


S∞ S∞
∀A, Bi ⊆ X ∗ A.( S∞ i=1 Bi ) = S∞ i=1 (A.Bi )
( i=1 Bi ).A = i=1 (Bi .A)

Attention! Le produit de langages n’est pas distributif par rapport à


l’intersection.
∀A, B, C ⊆ X ∗ , A.(B ∩ C ) ⊆ (A.B) ∩ (A.C )

Théorie des langages


27 / 29
N
Alphabets et langages

Opérations sur les langages

Fermeture de Kleene
S∞
Soit A ⊆ X ∗ . On note A∗ = i=0 Ai l’opération étoile (ou fermeture
par étoile, ou fermeture de Kleene, ou fermeture itérative) du langage
A.

Note : Comme A0 = {}, on a toujours  ∈ A∗

Théorie des langages


28 / 29
N
Alphabets et langages

Opérations sur les langages

Fermeture de Kleene
S∞
Soit A ⊆ X ∗ . On note A∗ = i=0 Ai l’opération étoile (ou fermeture
par étoile, ou fermeture de Kleene, ou fermeture itérative) du langage
A.

Note : Comme A0 = {}, on a toujours  ∈ A∗

Fermeture positive
S∞
Soit A ⊆ X ∗ . On note A+ = i=1 Ai la fermeture positive du
langage A.

Théorie des langages


28 / 29
N
Alphabets et langages

Opérations sur les langages

Fermeture de Kleene
S∞
Soit A ⊆ X ∗ . On note A∗ = i=0 Ai l’opération étoile (ou fermeture
par étoile, ou fermeture de Kleene, ou fermeture itérative) du langage
A.

Note : Comme A0 = {}, on a toujours  ∈ A∗

Fermeture positive
S∞
Soit A ⊆ X ∗ . On note A+ = i=1 Ai la fermeture positive du
langage A.

Théorème
Soit A ⊆ X ∗ . On a A+ = A.A∗ = A∗ .A

Théorie des langages


28 / 29
N
Alphabets et langages

Opérations sur les langages

Opération miroir
Soit A ⊆ X ∗ . On définit l’opération miroir comme étant à = {w̃ |w ∈
A}.
L’opération miroir peut également être notée AR = {w̃ |w ∈ A}.

Théorie des langages


29 / 29
N
Alphabets et langages

Opérations sur les langages

Opération miroir
Soit A ⊆ X ∗ . On définit l’opération miroir comme étant à = {w̃ |w ∈
A}.
L’opération miroir peut également être notée AR = {w̃ |w ∈ A}.

Théorème
Soit A, B ⊆ X ∗ . On a (A.B)R = B R .AR

Théorie des langages


29 / 29
N

Vous aimerez peut-être aussi