Académique Documents
Professionnel Documents
Culture Documents
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
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
L ∪ L = {ε, a, b, ab}
L .L = {b, ab, aab}
1 2
On a aussi L .L = L
∗ ∗ ∗
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 (Σ.Σ) .
∗
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
∗
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 )∗
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
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.
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
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
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