Académique Documents
Professionnel Documents
Culture Documents
Introduction et rappel
W. Saadi
Plan
1. Théorie des Langages : Pourquoi ?
2. Théorie des Langages : objectifs
3. Rappels sur la théorie des ensembles
1. Ensemble
2. Opérations sur les ensembles
3. Construction d’autres ensembles
4. Mesures sur les ensembles
4. Définitions et notion de base
1. Alphabet
2. Mot
3. Langage
2
Théorie des Langages : Pourquoi ?
La théorie des Langages est une branche
fondamentale de l’Informatique théorique.
Certainement, la première question que vous allez
poser :
3
Exemple1 : correction orthographe et
grammaire sur Word
Comment fonctionne un logiciel de correction
d’orthographe ?
5
Questions
1. Comment pouvons nous vérifier si un mot
appartient à un langage ?
2. Comment pouvons-nous vérifier si une phrase
respecte des règles ?
7
une étude des règles de grammaire.
Un langage est un ensemble de mots
Il est nécessaire de rappeler les différents concepts
de base de la théorie des ensembles qui sont
utiles pour introduire la théorie des langages..
8
Rappels sur la théorie des
ensembles
9
Ensemble
Un ensemble est une collection d’objets sans répétition. Si
un objet appartient à un ensemble E, on dit qu’il est
élément de cet ensemble.
10
L’ensemble vide
On distingue un ensemble particulier noté ∅ qui ne
contient aucun élément.
11
Définition d’un ensemble (1)
1) Définition par extension : Elle est valable si l’ensemble est
fini. On précise les valeurs de l’ensemble entre accolades
(valeurs séparées par des virgules).
Exemple : E = {a, c, f }
13
Opérations sur les ensembles
Nous pouvons définir plusieurs opérations sur les
ensembles. Ces opérations permettent soit de
comparer des ensembles soit de construire
d’autres ensembles.
14
Comparaison des ensembles
Les ensembles peuvent être comparés de différentes
manières selon les éléments qui les contiennent.
Néanmoins, il existe deux comparaisons qui peuvent être
appliquées à n’importe quels ensemble, il s’agit de
l’inclusion et de l’égalité.
15
Inclusion
Un ensemble E est dit inclus dans un ensemble F si tout élément de E
appartient à F (∀x∈ E, x ∈ F). F est dit un sous ensemble de E.
Notation : E ⊆ F
Notation : E⊂ F
Exemples :
{ab, ac, a, b} ⊆ {a, ab, b, ac}
{ab, ac} ⊂{ab, ac, a, b}
{ab, ac, a, b} ⊄ {ab, ac}
16
Propriété importante :
X⊆Y et Y ⊆ X ⇔X = Y
17
Égalité
Deux ensembles E et F sont égaux (c’est-à-dire qu’ils
contiennent les mêmes éléments) si E ⊆ F et F ⊆ E.
Notation : E = F
Exemples :
Propriétés
∅ ⊆ E quelque soit l’ensemble E
E⊆∅⇒E=∅
18
Construction d’autres ensembles(1)
Union : notée E ∪F , comporte tout élément
appartenant à E ou F (E ∪F = {x|x ∈E ∨ x ∈F }).
19
Construction d’autres ensembles(2)
Le complément: noté E = Ω−E. on peut la définir
par E\F={x|x∈E ∧ x∉F} = E\(E ∩F)
20
Propriétés
E∪ ∅=E. E ∪F=F ∪E.
E∩ ∅= ∅. E ∩F=F ∩E.
E\ ∅
∅=E.
E1∪(E2 ∪E3)=(E1∪E2)∪E3
∅\E= ∅.
E1∩(E2∩E3)=(E1∩ E2)∩E3
E ∪ =E.
E1∩(E2 ∪ E3)=(E1∩ E2) ∪ (E1∩ E3)
E ∩E=E.
E\E= ∅. E1∪(E2∩E3)=(E1∪E2)∩(E1∪E3)
21
Exemple
E = {a, b}, F= {a, c}, Ω = {a, b, c} :
E ∩ F = {a} ;
E∪
∪ F= {a, b, c} ;
E− F = {b} ;
E = {c} ;
22
Mesures sur les ensembles
Ces opérations ont pour objectif de construire une valeur
numérique caractérisant l’ensemble. La mesure la plus
utilisée et celle de la cardinalité. Si un ensemble E a un
nombre fini d'éléments, on appelle cardinal de E le nombre
d'éléments de E. On note ce nombre card(E) ou |E|. Si
l’ensemble est infini alors sa cardinalité est ∞ .
Propriété :
card(E × F) = card(A).card(B)
23
Définitions et notion de base
24
Définition d’un alphabet
Un alphabet Σ (ou on peut le nommé V ou A) est un
ensemble fini et non vide, les éléments de cet ensemble
sont appelés des lettres ou des symboles. Il est
également souvent appelé le vocabulaire.
Exemple
Σ={0,1}. l'alphabet des langages machines.
Σ={A, C ,G ,T} les quatre nucléotides de l'ADN.
25
Définition d’un mot
On appelle mot sur un alphabet Σ toute suite finie,
éventuellement vide, d’éléments de Σ.
Notations :
26
Exemple
Le mot 1011 est défini sur l’alphabet {0, 1}
27
Longueur d’un mot
Si w est un mot, alors sa longueur est définie comme
étant le nombre de symboles contenus dans w, elle
est noté par |w|.
Exemple
Sur l’alphabet V={a, b, c, d}
|abc| = 3
|aabba| = 5.
Le mot vide noté ε est le seul mot de longueur nulle
|ε| = 0.
28
Nombre d’occurrences
On définit la cardinalité d’un mot w par rapport à un
symbole a ∈ Σ: |w|a comme étant le nombre
d’occurrence de a dans w.
Exemple
|abc|a = 1.
|aabba|b = 2.
|1010111|1 = 5.
|1010111|0 = 2.
29
Concaténation des mots
Soient w1 et w2 deux mots définis sur l’alphabet Σ. La
concaténation (ou produit de concaténation) de w1 et
w2 est un mot w défini sur le même alphabet. w est
obtenu en écrivant w1 suivi de w2, en d’autres termes,
on colle le mot w2 à la fin du mot w1 :
w = a1...anb1b2...bm
30
Notation
La concaténation est noté par un point, mais il peut
être omis s’il n’y a pas de d’ambiguïté.
Exemple
w1 =aabac
w2 =dab
w= w1.w2 =aabacdab
31
Propriétés de la concaténation
Soient w, w1 et w2 trois mots définis sur l’alphabet Σ:
33
Monoïde
La concaténation est associative mais non
commutative.
34
Le mot miroir
Soit w = a1a2...an un mot sur Σ. On appelle mot miroir
de w et on le note par wR le mot obtenu en écrivant
w l’envers, c’est-à-dire que wR = an...a2a1.
propriétés
(wR)R = w.
εR = ε ;
aR = a, avec a∈ Σ ;
(a.w)R = wR.a, avec a ∈ Σ.
35
Palindromes
Certains mots, appelés palindromes, sont égaux à leur
miroir. En d’autres termes, on lit la même chose dans
les deux directions.
Exemple
w=10110 ⇒ wR =01101
36
Facteur, Préfixe et suffixe
Soit Σ un alphabet, soient u et w deux mots de Σ* (u,w ∈ Σ*),
on dit que :
u est un sous-mot (facteur) de w si et seulement s’il existe
deux mots w1 et w2 ∈ Σ* tel que : w = w1uw2 ;
u est un facteur propre de w si et seulement si w1 ≠ ε et
w2 ≠ ε
u est un facteur gauche (préfixe) de w si et seulement si
w1 =ε
u est un facteur droit (suffixe) de w si et seulement si w2=ε
37
Définition d’un langage formel
On appelle langage formel défini sur un alphabet Σ, tout
sous-ensemble (fini ou infini) de Σ*. Un langage peut être
défini par extension, par compréhension ou par induction.
Un langage fini est un langage contenant un nombre fini
de mots.
Le langage vide ne contient aucun mot.
Un langage est dit propre s’il ne contient pas le mot vide.
Un langage est infini s’il n’est ni vide ni fini.
38
Exemple
Langage des nombre binaires définies sur l’alphabet
{0, 1} (infini)
39
Remarques
Σ* dénote l'ensemble des mots sur l'alphabet Σ .
40
Operations sur les langages
Les langages sont des ensembles, par conséquent on peut
leur appliquer toutes les opérations appliquées sur les
ensembles ; toutefois, il existe des opérations qui leurs
sont spécifiques, il s’agit d’une extension des opérations
définies sur les mots. On peut définir deux catégories
d’opérations : les opérations ensembliste et les
opérations non ensemblistes.
41
Les opérations ensemblistes
Soient L,L1 et L2 trois langages définis respectivement sur les
trois alphabets Σ, Σ1 et Σ2.
L1 + L2 = L1 | L2 = {w|w ∈ L1 ∨ w ∈ L2}
42
Exemple
Soient les deux langages L = {w ∈ Σ* | |w| est pair } et
L ∩ L1 = φ
L + L1 = Σ*
L = L1
L L1 = L1 = L1 L
L1 L1 = L \ {ε}
LL = L
43
Les opérations non ensemblistes
La concaténation : L1.L2 = {w|∃u ∈ L1, ∃v ∈ L2 : w = uv}
Exposant (La puissance concaténative ) :
Ln = L.L...L = {w|∃u1, u2, ...un ∈ L : w = u1u2...un}
n fois
L1.L2 = {000,001,0001,110,111,1101}
45
Propriétés des opérations sur les langages
Soient L1,L2,L3 et L4 quatre langages définis sur l’alphabet Σ :
46