Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
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
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 = a1b et 1L}
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 = a1a ou = b1b et
1L}
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 = a1a ou = b1b et
1L}
• L est l’ensemble des mots palindromes sur le vocabulaire
{a, b}.
L = {{a, b}*/ = a ou = b ou = aa ou = bb ou = a1a
ou = b1b et 1L} 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:
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
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