Vous êtes sur la page 1sur 6

Chapitre 1

Langages formels

1.1 Introduction
La théorie des langages formels (langages mathématiques) est l'un des fondements de
l'informatique. Cette théorie étudie un mode d'expression plus précis que les langages de
tous les jours (les langages naturels). Cependant, les langages formels partagent avec les
langages naturels beaucoup de points communs. On retrouve, par exemple, les notions
d'alphabet et de mot. Toutefois, les mots des langages formels n'ont pas forcement un sens
(une sémantique).
On utilise les langages formels, entre autres pour :
 Concevoir des compilateurs
 Étudier la calculabilité et la complexité.
 Formuler des problèmes issues de divers domaines tels que les mathématiques (cal-
cul formel) et la biologie (séquençage génétique).
1.2 Dénitions et notations
Alphabet = ensemble ni et non vide de symboles
 {a,b,c,...,z}
 {A,C,G,T} pour coder l'adénine, la cytosine, la guanine et la thymine.
 {0,1,2,...,9}
 {0,1}
 ensemble des symboles se trouvant sur un clavier.
Mot sur un alphabet = séquence nie de symboles de cet alphabet.
 motquiveutriendire
 CCAAT, AAAGTCTGAC
 4711
 1010
 un programme C.
Langage = ensemble de mots dénis sur le même alphabet.

1
2 CHAPITRE 1. LANGAGES FORMELS

 pronoms Français : {je, tu, il, . . .}.


 ensemble des séquances codantes d'un gène.
 ensemble des entiers naturels
 ensemble des programmes exécutables qui s'arrêtent toujours.
 ensemble des programmes C.
Notations

 Longueur d'un mot ω noté |ω|.


 Le Mot vide désigné par ε. On a donc |ε| = 0.
 Le i symbole du mot ω est désigné par ω(i).
ème

1.3 Opérations sur les langages

En théorie des langages, on distingue trois opérateurs principaux, qui sont dénis
comme suit. Soit L et L deux langages quelconques, alors on a :
1 2

 L'union de L et L : L ∪ L = {ω | ω ∈ L ou ω ∈ L }.
 La concaténation de L et L : L .L = {ω | ω = x.y et x ∈ L et y ∈ L }.
1 2 1 2 1 2

 La fermeture itérative de L : L = {ω | ∃k ≥ 0, ω , . . . , ω ∈ L et ω = ω . . . . ω }.
1 2 1 2 1 2

1 1 1 k 1 1 k

Exemple : L 1 = {ε, a}, L2 = {b, ab}

 L ∪ L = {ε, a, b, ab}
 L .L = {b, ab, aab}
1 2

 L = {ε, a, aa, aaa, . . .}


1 2

 L = {ε, b, ab, bb, abb, bbb, . . .}


1

2
1.4. LANGAGES RÉGULIERS 3
Propriété 1.
 L'opérateur de concaténation (.) est associatif (mais pas commutatif)
u.(v.w) = (u.v).w

 Le mot vide ε est l'élément neutre de la concaténation :


ω.ε = ε.ω = ω

 La concaténation est distributive par rapport à l'union :


(u ∪ v).w = u.w ∪ v.w

w.(u ∪ v) = w.u ∪ w.v


 L'opérateur de fermeture itérative est idempotent :
(L∗ )∗ = L∗

 On a aussi L .L = L
∗ ∗ ∗

 Pour tout langage L, on a


L0 = {ε}
L1 = L
L2 = L.L
Ln+1 = L.Ln = Ln .L
S+∞

L = n=0 Ln

Priorités entre opérateurs : les opérateurs de la théorie des langages sont appliqués
en respectant des priorités bien dénies. Ainsi l'opérateur de fermeture itérative est plus
prioritaire que l'opérateur de concaténation qui est plus prioritaire que l'union.
∪≺.≺∗
L'ordre d'application des opérateurs peut être modié au moyen de parenthèses.
Exemple : Σ.Σ qui est le langage de tous les mots non vides sur Σ est diérent du

langage (Σ.Σ) .

1.4 Langages réguliers


L'ensemble des langages réguliers R est le plus petit ensemble tel que :
 ∅∈R
 {ε} ∈ R
 {a} ∈ R pour tout a ∈ Σ
 Si L ∈ R et L ∈ R alors L ∪ L ∈ R, L.L ∈ R et L ∈ R.
0 0 0 ∗
4 CHAPITRE 1. LANGAGES FORMELS

L'intérêt des langages réguliers provient de leurs utilité pratique. On s'en sert, par
exemple, dans l'une des phases de la compilation (analyse lexicale) ou encore dans la
recherche de chaînes de caractères dans des documents. De plus, les moyens algorithmiques
nécessaires pour reconnaître ces langages sont simples et peu complexes. Précisons que
reconnaître un langage consiste a dire, pour un mot donné, si ce mot appartient au langage
ou pas.
1.5 Expressions régulières
Les expressions régulières permettent de dénoter (représenter) les langages réguliers de
manière précise et concise. Étant donné un alphabet Σ, l'ensemble des expressions régu-
lières sur Σ est déni comme suit :
 ∅ est une expression régulière,
 ε est une expression régulière,
 a est une expression régulière pour tout a ∈ Σ,
 si α et β sont des expressions régulières alors (α ∪ β), (α.β) et (α ), avec ou sans

les parenthèses, sont des expressions régulières.


Remarques
 Les parenthèses ne sont pas indispensable si l'expression régulière souhaitée res-
pecte les priorités des opérateurs.
 L'ensemble de toutes les expressions régulières sur un alphabet Σ donné constitue
un langage sur l'alphabet
Σ0 = Σ ∪ {∅, ε, ∪, ., ∗, (, )}

1.6 Langages dénotés par des expressions régulières


Étant donné une expression régulière α, L(α) désigne le langage dénoté par α. L'identi-
cation du langage à partir de l'expression régulière qui le dénote s'eectue en appliquant
les règles suivantes :
 L(∅) = ∅,
 L(ε) = {ε},
 L(a) = {a} pour tout a ∈ Σ,
 L(α ∪ β) = L(α) ∪ L(β),
 L(α.β) = L(α).L(β),
 L(α ) = L(α) .
∗ ∗

Exemples
 Le langage de tous les mots sur un alphabet quelconque Σ = {a , a , . . . , a } est
dénoté par l'expression régulière
1 2 n

(a1 ∪ a2 ∪ . . . ∪ an )∗
On écrit plus simplement Σ .∗
1.7. LANGAGES NON RÉGULIERS 5
 Le langage de tous les mots non vide sur un alphabet quelconque Σ = {a , a , . . . , a }
est dénoté par l'expression régulière
1 2 n

(a1 ∪ a2 ∪ . . . ∪ an )(a1 ∪ a2 ∪ . . . ∪ an )∗

On écrit plus simplement Σ.Σ , ou encore Σ .


∗ +

 Le langage de tous les mots commençant par a et se terminant par b sur l'alphabet
Σ = {a, b} est dénoté par l'expression régulière

a(a ∪ b)∗ b

 L'ensemble des entiers naturels codés, de manière unique, sur l'alphabet Σ =


{0, 1, 2, . . . , 9} est régulier car dénoté par l'expression régulière suivante

0 ∪ (1 ∪ 2 ∪ . . . ∪ 9)(0 ∪ 1 ∪ 2 ∪ . . . ∪ 9)∗

Theorem 2. Un langage est régulier si et seulement si il est dénoté par une ex-
pression régulière.

1.7 Langages non réguliers


Il existe des langages que les expressions régulières ne peuvent pas décrire. Un exemple
de tels langages est le langage inni suivant :
{a, (a), ((a)), (((a))), . . .}
Dans ce qui suit, on montre l'existence de langages non réguliers en se servant d'un
argument de cardinalité. Concrètement, on montre qu'il y a beaucoup plus de langages
que d'expressions régulières. Donc, il n'y aura pas assez d'expressions régulières pour
dénoter tous les langages. Par conséquent et en tenant compte du Théorème 2, on conclut
l'existence de langages non réguliers.
Dénition 1. Un ensemble inni est dénombrable s'il existe une bijection entre cet
ensemble et l'ensemble des entiers naturels (N).

Exemples
 L'ensemble de tous les entiers pairs est dénombrable.
 L'ensemble des nombres rationnels (Q) est dénombrable. La bijection entre Q et
N est :
{((0/1), 0), ((1/1), 1), ((1, 2), 2), ((2, 1), 3), . . .}
 Tout langage est dénombrable puisqu'on peut toujours ordonner les mots d'un
langage par ordre lexicographique.
 L'ensemble des nombres réels n'est pas dénombrable.
6 CHAPITRE 1. LANGAGES FORMELS

Exercice 1. Soient deux ensembles innis E et F tels que E ⊆ F . Si F est dé-


nombrable alors E est dénombrable.
Theorem 3. L'ensemble des sous-ensembles d'un ensemble inni dénombrable est
non dénombrable.
Preuve. On utilise la technique de la diagonal de Cantor (mathématicien allemand).
Considérons un ensemble inni dénombrable A, qui peut donc être écrie comme A =
{a , a , a , . . .}, puisqu'il existe une bijection entre les éléments de cet ensemble et N.
Supposons que, contrairement à ce que annonce le théorème, l'ensemble des sous-ensembles
0 1 2

de A, qu'on note par S, est dénombrable. Donc, on peut écrire S, à son tour, comme
S = {s , s , s , . . .}. Considérons alors le sous-ensemble de A suivant :
0 1 2

D = {ai ∈ A | ai ∈
/ Si }
D est un sous-ensemble de A, donc c'est un élément de S . Par conséquent, il existe k ∈ N
tel que D = S . Considérons alors la question de l'appartenance de a à D.
 a ∈ D, il s'ensuit que a ∈/ S , mais S = D, donc pas possible.
k k

 a ∈/ D, il s'ensuit que a ∈ S , mais S = D, donc pas possible.


k k k k
k k k k

D'où une contradiction de l'hypothèse que S est dénombrable.


L'existence des langages non réguliers se déduit alors des observations suivantes :
1. Tout langage déni sur un alphabet Σ donné est un sous-ensemble de Σ . ∗

2. Σ est inni et dénombrable.


3. Donc, d'après le théorème 3, l'ensemble de tous les langages sur Σ est non dénom-
brable.
4. D'autre part, l'ensemble de toutes les expressions régulières est compte à lui dé-
nombrable puisque c'est un langages sur l'alphabet Σ = Σ ∪ {∅, ε, ∪, ., ∗, (, )}.
0

5. On sait que dans un ensemble non dénombrable, il y a beaucoup plus d'éléments


que dans un ensemble dénombrable.
6. Donc, il y a beaucoup plus de langages que d'expressions régulières.
7. Ceci montre l'existence de langages qui ne sont pas dénotés par des expressions
régulières. Tous ces langages sont des langages non réguliers.

Vous aimerez peut-être aussi