Vous êtes sur la page 1sur 23

Automates et Langages

Chapitre 1: Mots et langages


Dr.Ghada Besbes
Alphabet (Vocabulaire)
• C’est un ensemble fini de symboles (ou caractères).
• Notation : X
• Exemples :
• Alphabet latin { a, b, c ,….}

Dr.G.Besbes
• Alphabet binaire {0, 1}
• Alphabet des mots clés { if, then, else,…}
• Alphabet des chiffres hexadécimaux { 0, 1, 2, …, 9, A, …, F}

2
Mot
• Un mot ou chaîne sur un alphabet est une séquence/ suite
finie de symboles de l’alphabet.
• Notation : 
• Exemples :

Dr.G.Besbes
Alphabet Mot
X= {a, b} = aaa, abba, ababa, bbaba,
abbaaaaba
X= {0, 1} = 0011 , 10101, 01101

X= {if, then, begin, else, end, = if a then b:= 2 else b := 4


3
:=, a, b, 4, c} = if if b a b := := then begin
Mot
• On note i est l’image de i dans le vocabulaire X.
• i est le rang de i dans X.
Exemples:
1. Si le vocabulaire X = {a, b} alors dans le mot abba,

Dr.G.Besbes
1=a 2=b 3=b 4=a
2. Si le vocabulaire est X = {x1, x2, +, *, (, )} alors dans le mot
(x1*(x2+x1))
1=(  2 = x1 3=*
4=(  5 = x2 6=+
 7 = x1 8=) 9=)

4
Ensemble de toutes les chaînes
• Soit un alphabet / Vocabulaire
• X* : Ensemble des mots formés à partir de X .
• Exemple : = {a, b} * = { , a, b, ab, aab, ababa, aabbbb,
babaaaaaaaaabbbbbbbbb,….}

Dr.G.Besbes
• X+: X* \ {} : Ensemble des mots définis sur l’alphabet sauf le
mot vide (chaînes non vides).
• Remarques :
• Si X Ø alors X* est infini
• Ø* = {}

5
Longueur d’un mot
Longueur d’un mot: ||: Nombre de symboles dans 
considérant un alphabet X.
• Exemples :
• X= {a, b}
|aab| = 3 , | abab| = 4 , |abbaaba| = 7

Dr.G.Besbes
• X= {a, bb}
|a| = 1, |abb| = 2, |bbaabb| = 4, |bbbbabba| = 5
• X={0,1}
|001|=3 en considérant l’alphabet binaire
• X=alphabet Latin
|rouge|=5
• X={rouge,noir,0,1,a}
|rouge|=1 6
Nombre d’occurrences d’un
symbole dans un mot
Nombre d’occurrences d’un symbole dans un mot : Le nombre
d’occurrences d’un symbole x dans un mot  est le nombre de
fois où ce symbole apparait dans ce mot .
On le note ||x .
• X = {a, b}, soit  = abb

Dr.G.Besbes
|| = 3 ||a = 1 ||b = 2

7
Chaine vide
• Par convention, il existe une chaîne de longueur 0 qui ne
contient aucun symbole du vocabulaire, c’est la chaîne vide
(appelée aussi mot vide)
• Notation: 
• Une chaîne vide est un élément de X*

Dr.G.Besbes
• || = 0

8
Concaténation de deux chaînes
• La concaténation de deux chaînes u et v donne une chaîne
composée de u suivi de v sans aucun symbole de séparation
• Notation: uv ou u.v
• Si =uv alors || = |u| + |v|

Dr.G.Besbes
• i= ui si 1  i  |u|
i= vi-|u| si |u|+1  i  |  |
• Associativité: u.(v.w)=(u.v).w
• Le mot vide  est un élément neutre de la concaténation:
u.  = .u = u

9
L’opération*, l’opération+
• ak = aaaaaaaaa……
<----------------->
k fois

• a2 = aa

Dr.G.Besbes
• a0 = 
• a* = {ai / i  0} = {a0, a1, a2, ….ai, …}
• a+ = {ai / i >0} = {a1, a2, …., ai, …}

10
Sous chaîne, Préfixe et Suffixe
• Sous chaîne : x est une sous chaîne de  si il existe y et z
(chaînes sur le même alphabet). Tel que  = y x z.
Exemple: Considérons  = voiture
x = tu est une sous chaîne de 
car il existe y = voi et z=re tel que  = yxz = voiture

Dr.G.Besbes
• Préfixe : x est un préfixe de  si il existe y tel que:  = x y.
Exemple: Considérons  = voiture
x = voit est un préfixe de 
car il existe y = ure tel que  = x y = voiture
• Suffixe : x est un suffixe de  si il existe y tel que  = y x.
Exemple: Considérons  = voiture
x = ture est un suffixe de  11
car il existe y = voi tel que  = y x= voiture
Les langages
• Un langage est un ensemble de chaînes sur un alphabet X donné.
 C’est un sous ensemble de X*
 C’est un ensemble de mots choisis à partir d’un alphabet X.
• Exemples :

Dr.G.Besbes
1. X = {a, b}
L = { anbn | n 0 } = {, ab, aabb, aaabbb, aaaabbbb,… }
2. X = {0, 1, 2, 3, …9}
L = { représentations binaires des nombres entiers naturels} = ℕ
3. X = {x1, x2, +, *, (, )}
L = {expressions arithmétiques parenthesées manipulants x1, x2, +
et *}
4. Si X est la vocabulaire du langage de programmation C
X = {main, (, ), #, Include, <, >, ., ;, id, nb, …….} 12
L= {programmes C corrects syntaxiquement}
Les langages
Définition récursive
• L est l’ensemble des mots sur {a, b} où tous les a précèdent les
b et sont de même nombre
• La définition par propriété mesurable est la suivante :

Dr.G.Besbes
L = { anbn | n 0 }
• La définition récursive du même langage est :
L = {  {a, b}*/  = ou  = a1b et 1L}

13
Les langages
Définition récursive
• L est l’ensemble des mots palindromes sur le vocabulaire
{a, b}, de longueur paire.
L = {{a, b}*/  = aa ou  = bb ou  = a1a ou  = b1b et
1L}

Dr.G.Besbes
• L est l’ensemble des mots palindromes sur le vocabulaire
{a, b}, de longueur impaire.
L = {{a, b}*/  = a ou  = b ou  = a1a ou  = b1b et
1L}
• L est l’ensemble des mots palindromes sur le vocabulaire
{a, b}.
L = {{a, b}*/  = a ou  = b ou  = aa ou  = bb ou  = a1a
ou  = b1b et 1L} 14
Opérations sur les langages
• Soient deux langages L1 et L2. On peut définir les opérations
suivantes :
• Union: L1 ∪ L2 ={x | x  L1 ou x  L2}
• Intersection L1 ∩ L2 ={x | x  L1 et x  L2}

Dr.G.Besbes
• Différence L1 - L2 ={x | x  L1 et x L2}
• Complément 𝐿 ={x  X* | x  L}
• Concatenation n L1L2= {xy | x  L1 et y  L2}
• Auto concaténation L . . . L Ln (L0 = {ε})
• Fermeture de Kleene L* 𝑛≥0 L
n

Exemple: L={abc,cab}
L*={,abc,cab,abcabc,abccab,cabcab,cababc, abcabcabc, abcabccab, ..} 15
n=0 n=1 n=2 n=3
Les expressions régulières
Définition : Expression régulière
Une expression régulière se définit sur un alphabet par récurrence
comme suit :
•  est une expression régulière
• a  X, a est une expression régulière : elle désigne le singleton {a}
• Si  et  sont deux expressions régulières : + notée aussi |,

Dr.G.Besbes
. , * et + sont des expressions régulières.

• Remarque:

• ab*+c équivalent à ((a)(b*))+(c) 16


Les expressions régulières

Commutativité r+s = s+r


Associativité r+(s+t) = (r+s)+t
Associativité de la concaténation r.(s.t) = (r.s).t

Dr.G.Besbes
Distributivité de la concaténation par r.(s+t) = r.s+r.t
rapport à l’union (r+s).t = r.t +s.t

 neutre pour la concaténation .r = r.  = r


 est inclus dans la fermeture r* = (r+ )*

Idempotence de * (r*)* = r*
17
Les expressions régulières
Exemples :
Soit X = {a, b}
• a* dénote l’ensemble des chaînes de 0, 1 ou plusieurs a soit
{ , a, aa, aaa, aaaaaaaa, ….}

Dr.G.Besbes
• (a+b)* dénote l’ensemble de toutes les chaînes constituées
d’un nombre quelconque de a et de b { , a, b, ab, aaab, bab,
aabbbb, bababa, aabbabab,…}
• a+a*b dénote l’ensemble formé par la chaîne a et toutes les
chaînes formées par 0, 1 ou plusieurs a suivi de b : {a, b, ab,
aab, aaaaaab, aaaaaaaaaaaaab, aaaaaaaaaaaaaaaab,…}
• (a+b+…z+A+B+…Z)(a+b+…z+A+B+…Z+0+1+…9)* dénote les
identificateurs alphanumériques qui commencent par un 18
caractère alphabétique
Les Langages réguliers
Définition : Langage régulier
Un langage est dit régulier s’il existe une expression régulière qui le
génère.

Exemples:

Dr.G.Besbes
• a+b dénote le langage {a, b}
• (a+b)(a+b) dénote le langage {aa, ab, ba, bb} = aa+ab+bb+ba

19
Les Langages réguliers
Propriétés
Étant donné deux langages réguliers L1 et L2
• L1  L2 : est un langage régulier

Dr.G.Besbes
• L1 . L2 : est un langage régulier
• L1* : est un langage régulier
• L1 : est un langage régulier
• L1  L2 = est un langage régulier

20
Les Langages réguliers
• Définition : Deux expressions régulières  et  sont dites
équivalentes si L() = L()
• Autrement s’ils génèrent le même langage
• Exemple :

Dr.G.Besbes
Langage décrit par l’expression régulière :
(a+b)*
Autre expression régulière
(a*b*)*
On peut noter :
21
(a+b)* = (a*b*)*
Exercices
Soit le vocabulaire X={a,b,c}
Enumérer quelques mots de X*

Corrigé:

Dr.G.Besbes
aa, abc, bacbc, a, b, c,..

22
Exercices
Soit L1 le langage sur X={a,b,c} composé d’un nombre pair de a
Enumérer quelques mots de L1
Corrigé:
aa, aabc, acaaa

Dr.G.Besbes
Soit L2 le langage sur X={a,b,c} composé d’un nombre impaire de a
1. Enumérer quelques mots de L2
2. Que peut on dire de L1 ∪ L2, L1 ∩ L2, L1L2, X* ∩ L1
Corrigé:
1. aaa, abaa, aacaaac
2. L1 ∪ L2= X*
3. L1 ∩ L2=
4. L1L2=L2 23
5. X* ∩ L1=L1

Vous aimerez peut-être aussi