
76 Chapitre 2. Langages algébriques76 Chapitre 2. Langages algébriques76 Chapitre 2. Langages algébriques
non terminaux ou variables. Les éléments de Psont appelés règles. Chaque règle est une
paire (X, u) où Xest une variable et uest un mot sur l’alphabet A+V.
Les grammaires définies ici sont appelées algébriques pour les distinguer de gram-
maires plus générales qui sont abordées au chapitre suivant (cf. définitions 3.54 et 3.55
p. 158). Le terme algébrique sera justifié en montrant que les langages engendrés par les
grammaires sont solutions de systèmes d’équations polynomiales (cf. proposition 2.24
p. 84). Comme toutes les grammaires considérées dans ce chapitre sont algébriques, elles
seront simplement appelées grammaires dans le reste de ce chapitre.
On note X→ulorsque (X, u)∈Pest une règle de la grammaire. Par extension, si
(X, u1),...,(X, un) sont des règles, on écrit X→u1+···+un. Les éléments Xet u
d’une règle X→usont respectivement appelés membre gauche et membre droit de la
règle.
Exemple 2.2.Soit la grammaire G= (A, V, P ) définie par
A={a, b}, V ={S}, P ={S→aSb +ε}
Cette grammaire a deux lettres terminales aet b, une seule variable Set deux règles
(S, aSb) et (S, ε). On verra que le langage engendré par cette grammaire est {anbn|n≥
0}.
Lorsqu’une grammaire est donnée de manière explicite, on se contente souvent de
donner les règles. Les variables de la grammaire sont alors implicitement les symboles
qui apparaissent comme membre gauche des règles et toutes les autres lettres sont im-
plicitement des lettres terminales. Pour la grammaire donnée ci-dessus, on aurait pu
simplement écrire P={S→aSb +ε}.
Définition 2.3 (Dérivation).Soit G= (A, V, P ) une grammaire et soient uet vdeux
mots sur A+V. On dit que use dérive en (ou produit)vet on note u→vlorsque il
existe α, β ∈(A+V)∗et X∈Vtels que :
u=αXβ, v =αwβ et (X→w)∈P
La dérivation est dite gauche (respectivement droite) si α(respectivement β) appartient
àA∗. Ceci signifie que c’est la variable la plus à gauche (respectivement à droite) qui
est réécrite.
Pour k= 0, on note uk
−→ vsi u=vet pour k≥1, on note uk
−→ vs’il existe des
mots u1, u2,...,uk−1tels que u→u1→ · · · → uk−1→v. Plus généralement, on notera
u∗
−→ vs’il existe un entier k≥0 tel que uk
−→ v. La relation ∗
−→ est donc la clôture
réflexive et transitive de la relation →.
Exemple 2.4.Soit Gla grammaire donnée à l’exemple 2.2. La variable Speut se dériver
en le mot aSb qui se dérive à nouveau en aaSbb, qui se dérive encore en aaaSbbb qui se
dérive finalement en a3b3:S∗
−→ a3b3. Il est facile de voir que les mots w∈A∗tels que
S∗
−→ wsont justement les mots de la forme anbnpour n≥0.
Les langages algébriques sont aussi appelés langages hors contexte parce que lors
d’une dérivation, le remplacement de la variable Xpar wdans le mot u=αXβ est
indépendant des contextes αet β. Il existe aussi des grammaires contextuelles (cf. sec-
tion 3.7.2) dont les membres gauches de règle ne sont plus simplement des variables mais
des mots qui permettent de spécifier le contexte de remplacement d’une variable.