Chap 3 Gram Maire
Chap 3 Gram Maire
Chap 3 Gram Maire
Chapitre 3 :
Grammaires, langages
algébriques et automates à pile
1. Introduction
Nous avons vu au chapitre 2 que l’on peut définir des langages rationnels en
utilisant les automates (les langages reconnaissables).
Et que ces langages permettent de définir formellement beaucoup de langages,
mais pas tous, par exemple le langage {an b n | n ∈ N} n’est pas rationnel (voir
TD 3).
Dans ce chapitre, nous allons présenter une famille des langages plus vaste,
des langages générés par des méthodes plus riches que les expressions
rationnelles, des langages définis à l’aide de grammaires.
Il s’agit des langages algébriques (ou hors-contexte).
Ces langages ont été introduits par Avram Noam Chomsky dans le but de
formaliser les propriétés grammaticales de langues naturelles.
On a montrer par la suite, que ces notions peut être adaptées à la syntaxe des
langages de programmation.
Grammaire
Exemple
Définition
Soit G = (T , N, S, R) une grammaire, et soient f et g deux mots de (T ∪ N)∗ .
Une dérivation immédiate est une relation de dérivation −→ définie par :
f −→ g si, et seulement si, f = f1 uf2 , g = g1 vg2 et (u −→ v ) ∈ R.
Une dérivation est une séquence de réécritures de la forme :
f = f0 −→ f1 −→ f2 −→ · · · −→ fn−1 −→ fn = g, notée f −→∗ g, où la
relation −→∗ est dite clôture reflexive et transitive de −→.
Lorsque l’on a plusieurs dérivations f −→ u, f −→ v , f −→ w , on peut réduire
la notation en f −→ u|v |w .
Exemple
Définition
Soit G = (T , N, S, R) une grammaire.
On appelle langage engendré par G, noté L(G), l’ensemble des mots u ∈ T ∗ tels que
S −→∗ u. Autrement,
L(G) = {u ∈ T ∗ | S −→∗ u}
Exemple
Exercice
Classes de grammaires
1 Grammaires de type 0 : une grammaire dans laquelle la forme des productions
est non-contrainte (peut utiliser toutes les règles, u −→ v avec
u ∈ (T ∪ N)∗ \ {ε} et v ∈ (T ∪ N)∗ ).
2 Grammaires de type 1 (sous-contexte) : une grammaire dans laquelle la forme
des productions est u −→ v avec u, v ∈ (T ∪ N)∗ \ {ε} et |u| ≤ |v |.
3 Grammaires de type 2 (algébriques ou hors-contexte) : une grammaire dans
laquelle forme des productions est A −→ u avec A ∈ N et u ∈ (T ∪ N)∗ (le
membre gauche est réduit à un non-terminal).
4 Grammaires de type 3 (régulières) : une grammaire dans laquelle forme des
productions est A −→ a|ε ou A −→ aB (ou A −→ Ba) avec A, B ∈ N et a ∈ T .
Exemple
Exemple
Propriétés
Propriétés (preuve)
racine
Exemple
S * S
NB S + S
1 NB NB NB
0 1 NB 1 NB
0 0
Exemple
S S
S * S S + S
NB S + S S * S NB
1 NB NB NB NB NB 1 NB
0 1 NB 1 NB 1 NB 1 NB 0
0 0 0 0
Par conséquent, la grammaire G est ambiguë et le langage algébrique L(G) est
ambigu.
Filière SMI Semestre 5 Théorie des langages et des automates
13/17
Les grammaires algébrique sont utilisées pour engendrer les langages algébriques.
Les grammaires sont une généralisation des expressions rationnelles qui
permettent quant à elles d’engendrer les langages rationnels.
Rappelons que les automates finis sont des machines qui permettent de
reconnaı̂tre les langages rationnels,
et que la classe des langages rationnels étant une sous-classe strict de la classe
des langages algébriques.
Ainsi, il existe une classe de machine qui permettent de reconnaı̂tre les langages
algébriques : les automates à pile,
des automates qui possèdent plus de mémoires que les automates finis (le
nombre de configurations qui peuvent être mémorisées est égal à son nombre
d’états) car ils possèdent une mémoire de plus sous forme de pile.
Définition
Un automate à pile est un septuplet Ap = hQ, A, Γ, Z0 , δ, q0 , T i où
Q est un ensemble fini des états de Ap , avec q0 l’état initial et T ⊂ Q
l’ensemble des états finals de Ap .
A est l’alphabet de Ap et Γ est l’alphabet de pile, Z0 le font de pile.
δ une fonction de transition de QxA ∪ {ε}x Γ dans Qx Γ∗ où δ(p, a, s) = (q, u)
signifie que l’on transite de l’état p à l’état q en lisant le symbole a ∈ A (ou rien
si a = ε), et on remplace le sommet de la pile s ∈ Γ par le mot u ∈ Γ∗ .
Exemple
b, z|ε
q0 p
a, z|zz
2 Le langage L = {ucu t | u ∈ {a, b}∗ } est un langage algébrique reconnu par
l’automate à pile Ap = h{0, 1}, {a, b, c}, {x , y }, Z0 , δ, 0, ∅i représenté comme
suit :
a, Z |xZ a, x |ε
c, Z |Z b, y |ε
0 1
b, Z |yZ ε, Z0 |ε
Avec Z ∈ {Z0 , x , y }.
Filière SMI Semestre 5 Théorie des langages et des automates
16/17
Théorème (Admis)
L est un langage algébrique si, et seulement si, L un langage reconnu un automate à
pile.