Vous êtes sur la page 1sur 16

CHAPITRE 1 ALPHABET ET

LANGAGES
DÉFINITION: ALPHABET
L'alphabet est un ensemble fini de symboles, noté
en général par ∑

Exemple 1: l'alphabet latin ∑1={a,b,c………,z}


Exemple 2: l'alphabet des chiffres ∑2={0,1,2,3,4,5,6,7,8,9}
Exemple 3: l'alphabet binaire ∑3={0,1}
DÉFINITION: MOT
 Un mot ou une chaîne est une séquence
finie de symboles pris de l'alphabet noté
généralement 

 Exemple 1: ω1= voiture, ω2= voyage sont deux


mots définis sur {a,b,c………,z}

 Exemple 2: ω1=00101 ,ω2=101101 sont deux


mots définis sur {0,1}
OPERATIONS SUR LES MOTS
 La taille d'un mot notée |ω| est le nombre de
symboles constituant le mot

 Exemple 1: |voiture|=7 en considérant


l'alphabet {a,b,c………,z}

 Exemple 2: |00101|=5 en considérant l'alphabet


{0,1}

 la chaîne vide notée ε est une chaîne de taille


nulle : |ε| = 0
OPERATIONS SUR LES MOTS
 Sous chaîne: x est une sous chaîne de ω ssi  y,
z (chaînes sur l'alphabet) tq ω = yxz
 Préfixe: x est un préfixe de ω ssi  y tq ω=xy

 Suffixe: x est un suffixe de ω ssi  y tq ω=yx

Exemple
 x=voi est un préfixe de voiture car  y= ture tq
ω=voiture
 x=ture est un suffixe de voiture car  y=voi tq
ω=voiture
OPERATIONS SUR LES MOTS
 Concaténation: soient u, v deux mots définis sur Σ,
tq u=x1x2..xn , v= y1y2..yn
 la chaîne ω concaténation de u et v notée ω=u.v = uv =
x1x2..xny1y2..yn.

Remarque: la concaténation est non commutative


Propriétés: |ω|=|uv|=|u|+|v|
 la concaténation est associative :xyz=(xy)z=x(yz).

  est l'élément neutre pour la concaténation.


OPERATIONS SUR LES MOTS
 Occurrence d'un symbole dans un mot: c'est le
nombre d'apparition du symbole dans le mot.

Exemple:
|abbba|b=3
|abbab|b=3

 Image (reverse): ω=aabab ωR=babaa


DÉFINITION: LANGAGE.
 Un langage est un ensemble de mots
 Exemple : si on considère l’alphabet  =
l’ensemble des caractères ASCII
DÉFINITION: LANGAGE.
 Un langage est un ensemble de mots
 Exemple : si on considère l’alphabet  =
l’ensemble des caractères ASCII

 Lid={x1,y1, a1, somme, produit, result,…} c’est le


langage qui englobe tous les noms de variables possibles
(identificateurs)

 Lnb={0,1,2,..,10, 11, 12,…,10.13, 13.53,…} c’est le


langage qui englobe toutes les constantes numériques possibles

 Lkeyword={if, then, else , while, do, int, float,…} c’est


le langage qui englobe tous les mots réservés du langage de
programmation C
DÉFINITION: FERMETURE D’UN ALPHABET *
 Informellement: * est l'ensemble de tous les
mots définis sur Σ

 Exemple soit ={a,b}


 *={ , a, b, aa,ab,bb,ba, aaa,bbb,aab,bba,abb,baa,aba,bab, …}
Mots de taille 1
Mots de taille 0

Mots de taille 2

Mots de taille 3
DÉFINITION: FERMETURE D’UN ALPHABET *
 Formellement:
Exemple soit ={a,b}
soit  un alphabet
 0=l’ensemble des mots de taille
0 définis sur   0={}
 1=l’ensemble des mots de taille  1={a,b}
1 définis sur   2={aa,bb,ab,ba}
 2=l’ensemble des mots de taille  3={aaa,bbb,aab,bba, abb,baa,
2 définis sur  aba,bab}
 3=l’ensemble des mots de taille
3 définis sur 

 *= 0  1  2  3 ….  *={, a,b, aa,bb,ab,ba,


aaa,bbb,aab,bba,abb,baa,aba,bab,

⋃  …….. }
DÉFINITION: LANGAGE FORMEL
 Un langage formel sur un alphabet  est un
ensemble de mots appartenant à Σ* et qui
vérifient une propriété donnée.

 L={ω  Σ*, ω a la propriété P}

Exemple 1 : Σ={a,b}
 L1={ω  Σ*, tq |ω|a=|ω|b}
={ε, ab, ba, aabb, baba, ………..}
Exemple 2 l'ensemble des palindromes est définis par
 L2={ ω  Σ* , tq ω=ωR }
={ε, aba , bab, a,b,…}
OPÉRATIONS SUR LES LANGAGES
 Union L=L1  L2= {ω  Σ* tq ω  L1 ou ω L2}

 Intersection L=L1 ∩ L2= {ω  Σ* tq ω  L1 et ω  L2 }

 Concaténation: L=L1∙̣L2=L1L2={ω  Σ* tq  x, y tq ω =
xy avec x  L1 et y  L2}

 soit L1 ={aa,bb} et L2={baa,bba,ab}


̣ L1L2={aabaa, aabba, aaab, bbbaa, bbbba,bbab}
OPÉRATIONS SUR LES LANGAGES
 Fermeture de Kleene d’un langage notée L* :
 L*={ω  Σ* tq ω=ω1ω2……………..ωк pour k≥0 et ω1,ω2,..,ωк  L}
 C'est à dire que si L est un langage (ensemble de mots) alors L*
désigne l'ensemble de tous les mots formés par concaténation de
mots de L, où chaque mot de L peut être utilisé de 0 à n fois, et où
la chaîne vide est aussi incluse.
OPÉRATIONS SUR LES LANGAGES
 Fermeture de Kleene L*  Exemple
 Formellement  Soit L={aa,bb,ab}

 L0={}
 L0={}
 L1=L  L1=L={aa,bb,ab}
 L2=LL  L2={aa,bb,ab} {aa,bb,ab}

 L3 =L2L {aaaa, aabb, aaab, bbaa, bbbb bbab,


abaa,abbb,abab}

 L*= L0  L1  L2  L3 …  L3 =L2L={aaaaaa, aaaabb, aaaaab,


 L*= ⋃ aabbaa; aabbbb, aabbab,…}

 Remarque:  L*= L0  L1  L2  L3 …
 *= {}    L*={; aa ,bb,ab, aaaa, aabb, aaab,
 * est la répétition de 0 ou bbaa, bbbb bbab, abaa,abbb,abab,
aaaaaa, aaaabb, aaaaab, aabbaa;
plusieurs fois de  aabbbb, aabbab…}
OPÉRATIONS SUR LES LANGAGES
 Fermeture de Kleene L*

Exercice
Soit Σ = {0,1}
L = { ω  Σ *: tq |ω|a  |ω|b }

Montrez que L* = Σ *

Vous aimerez peut-être aussi