Vous êtes sur la page 1sur 42

Th

eorie des langages

Grammaires
Elise Bonzon
http://web.mi.parisdescartes.fr/vbonzon/
elise.bonzon@parisdescartes.fr

Th
eorie des langages
N

1 / 27

Grammaires

Grammaires

Principe de base
Definitions
Arbres de derivation
Caracterisation du langage genere par une grammaire
Types de grammaires

Th
eorie des langages
N

2 / 27

Grammaires

Grammaires

Principe de base
Definitions
Arbres de derivation
Caracterisation du langage genere par une grammaire
Types de grammaires

Th
eorie des langages
N

3 / 27

Grammaires

Principe de base

Ensemble de r`egles pour generer les mots du langage


Sous la forme de r`egles de reecriture
Remplacer une s
equence de symboles par une autre s
equence

Mots generes = mots obtenus `


a partir dun symbole special appele
symbole de depart ou axiome

Th
eorie des langages
N

4 / 27

Grammaires

Exemple

Considerons la phrase suivante :


La vieille dame regarde la petite fille
Peut-on construire une grammaire qui permette de generer cette phrase?
Alphabet : = { la, vieille, petite, dame, fille, regarde}
Structure de la phrase :
Un groupe sujet (article, adjectif, nom)
Un verbe
Un groupe compl
ement dobjet (article, adjectif, nom)

Th
eorie des langages
N

5 / 27

Grammaires

Exemple

Considerons la phrase suivante :


La vieille dame regarde la petite fille
Peut-on construire une grammaire qui permette de generer cette phrase?
Alphabet : = { la, vieille, petite, dame, fille, regarde}
Structure de la phrase :
Un groupe sujet (article, adjectif, nom)
Un verbe
Un groupe compl
ement dobjet (article, adjectif, nom)

Th
eorie des langages
N

5 / 27

Grammaires

Exemple

Considerons la phrase suivante :


La vieille dame regarde la petite fille
Peut-on construire une grammaire qui permette de generer cette phrase?
Alphabet : = { la, vieille, petite, dame, fille, regarde}
Structure de la phrase :
Un groupe sujet (article, adjectif, nom)
Un verbe
Un groupe compl
ement dobjet (article, adjectif, nom)

Th
eorie des langages
N

5 / 27

Grammaires

Exemple
R`egles de production
1. hPhrasei hSujetihVerbeihComplementi
2. hSujeti hGroupe Nominali
3. hComplementi hGroupe Nominali
4. hGroupe Nominali hArticleihNomi
5. hGroupe Nominali hArticleihAdjectifihNomi
6. hArticlei la
7. hNomi dame | fille
8. hAdjectifi vieille | petite
9. hVerbei regarde

Th
eorie des langages
N

6 / 27

Grammaires

Grammaires

Principe de base
Definitions
Arbres de derivation
Caracterisation du langage genere par une grammaire
Types de grammaires

Th
eorie des langages
N

7 / 27

Grammaires

Grammaire
Grammaire
Une grammaire est definie par un quadruplet G = hV , , P, Si o`
u
V est un alphabet
V est lensemble des symboles terminaux
V \ est lensemble des symboles non terminaux
S V \ est le symbole de depart ou axiome
P (V + V ) est lensemble (fini) de r`egles de production

Th
eorie des langages
N

8 / 27

Grammaires

Grammaire
Grammaire
Une grammaire est definie par un quadruplet G = hV , , P, Si o`
u
V est un alphabet
V est lensemble des symboles terminaux
V \ est lensemble des symboles non terminaux
S V \ est le symbole de depart ou axiome
P (V + V ) est lensemble (fini) de r`egles de production

Notations :
: lettres minuscules
V \ : lettre majuscules
R`egles de production :
Signification intuitive : l
el
ement V + peut
etre remplac
e par V
Th
eorie des langages
N

8 / 27

Grammaires

Grammaire : exemple
Soit G1 = hV , , P, Si avec
= {:=, a, b, c, +, , ), (}
V \ = {S, I , E }
Axiome S
8 r`egles de production :
S I := E
I b
E E +E
E (E )

I a
I c
E E E
E I

Th
eorie des langages
N

9 / 27

Grammaires

Grammaire : exemple
Soit G1 = hV , , P, Si avec
= {:=, a, b, c, +, , ), (}
V \ = {S, I , E }
Axiome S
8 r`egles de production :
S I := E
I b
E E +E
E (E )

I a
I c
E E E
E I

On peut aussi ecrire I a|b|c.

Th
eorie des langages
N

9 / 27

Grammaires

Grammaire : exemple

Soit G2 = hV , , P, Si avec
= {a, b}
V \ = {S}
Axiome S
3 r`egles de production :
S aSa
S SbS
S

Th
eorie des langages
N

10 / 27

Grammaires

Grammaire : exemple

Soit G3 = hV , , P, Si avec
= {a, b}
V \ = {S}
Axiome S
3 r`egles de production :
S aS
S aSbS
S

Th
eorie des langages
N

11 / 27

Grammaires

Grammaire hors contexte

Grammaire hors contexte


Soit G = hV , , P, Si. G est dite hors contexte (context-free) si tous
les r`egles sont de la forme
A
o`
u A V \ (symbole non terminal), et V

Th
eorie des langages
N

12 / 27

Grammaires

D
erivation
D
erivation en une
etape
Soit G = hV , , P, Si, u V + et v V . G permet de d
eriver v de
u en une
etape, note u
v , si et seulement si
G

u = xu 0 y
v = xv 0 y
u 0 v 0 est dans P

Th
eorie des langages
N

13 / 27

Grammaires

D
erivation
D
erivation en une
etape
Soit G = hV , , P, Si, u V + et v V . G permet de d
eriver v de
u en une
etape, note u
v , si et seulement si
G

u = xu 0 y
v = xv 0 y
u 0 v 0 est dans P

D
erivation en plusieurs
etapes

G permet de d
eriver v de u en plusieurs
etapes, note u
v , si et
seulement si k 0 et v0 , . . . , vk V tels que

u = v0
v = vk
vi
vi+1 pour 0 i < k
G

Th
eorie des langages
N

13 / 27

Grammaires

Langage g
en
er
e par une grammaire

Mots g
en
er
es par une grammaire
Soit G = hV , , P, Si.
Les mots g
en
er
es par G sont les mots v (symboles terminaux)

qui peuvent etre derives `a partir de laxiome : S


v.
G

Th
eorie des langages
N

14 / 27

Grammaires

Langage g
en
er
e par une grammaire

Mots g
en
er
es par une grammaire
Soit G = hV , , P, Si.
Les mots g
en
er
es par G sont les mots v (symboles terminaux)

qui peuvent etre derives `a partir de laxiome : S


v.
G

Langage g
en
er
e par une grammaire
Soit G = hV , , P, Si.
Le langage g
en
er
e par G , note L(G ) est lensemble des mots generes
par G .

L(G ) = {v |S
v}
G

Th
eorie des langages
N

14 / 27

Grammaires

Grammaire : exemple
Soit G3 = hV , , P, Si avec
= {a, b}
V \ = {S}
Axiome S
3 r`egles de production :
S aS
S aSbS
S

Th
eorie des langages
N

15 / 27

Grammaires

Grammaire : exemple
Soit G3 = hV , , P, Si avec
= {a, b}
V \ = {S}
Axiome S
3 r`egles de production :
S aS
S aSbS
S

On veut montrer que aaba L(G )

Th
eorie des langages
N

15 / 27

Grammaires

Grammaire : exemple
Soit G3 = hV , , P, Si avec
= {a, b}
V \ = {S}
Axiome S
3 r`egles de production :
S aS
S aSbS
S

On veut montrer que aaba L(G )


S aSbS aSbaS aSba aaSba aaba aaba
G3

G3

G3

G3

G3

G3

Th
eorie des langages
N

15 / 27

Grammaires

Grammaire : exemple
Soit G3 = hV , , P, Si avec
= {a, b}
V \ = {S}
Axiome S
3 r`egles de production :
S aS
S aSbS
S

On veut montrer que aaba L(G )


S aSbS aSbaS aSba aaSba aaba aaba
G3

G3

G3

G3

G3

G3

Seconde derivation possible :


S aSbS aaSbS aabS aaba aaba
G3

G3

G3

G3

G3

Th
eorie des langages
N

15 / 27

Grammaires

D
erivation la plus `
a gauche
D
erivation la plus `
a gauche (LPG)
Soit G = hV , , P, Si, et w

S
w est une d
erivation la plus `
a gauche (LPG) si, `a chaque
G

etape de la derivation, cest la variable la plus `a gauche qui est derivee.


Donc, si w1 , . . . , wn tels que
S = w0
w1
...
wn
wn+1 = w , et
G

i, 0 i n
wi = ui Ai vi ,
wi+1 = ui i vi et
Ai i

alors ui (ui est un symbole terminal, et ne contient donc pas de


variable).

Th
eorie des langages
N

16 / 27

Grammaires

Grammaires

Principe de base
Definitions
Arbres de derivation
Caracterisation du langage genere par une grammaire
Types de grammaires

Th
eorie des langages
N

17 / 27

Grammaires

Arbres de d
erivation pour une grammaire hors contexte
Arbres de d
erivation
Soit G = hV , , P, Si une grammaire hors contexte. Un arbre D est
un arbre de d
erivation pour un mot w `a partir de laxiome S si :
La racine de D est etiquetee par S (laxiome)
Les feuilles de D sont etiquetees par des elements de  (symboles
terminaux)
Letiquette dune feuille est le mot vide seulement si la feuille est fille
unique
Les nuds de D qui ne sont pas des feuilles sont etiquetes par un
symbole non terminal (V \ )
Pour tout nud, si Y est letiquette du nud, et si Z1 , . . . , Zn sont les
nuds de ses fils, dans cet ordre, alors Y Z1 . . . Zn est une r`egle
Le mot des feuilles de D, cest-`
a-dire le mot obtenu en concatenant
les etiquettes des feuilles de la gauche vers la droite, est le mot w
Th
eorie des langages
N

18 / 27

Grammaires

Arbres de d
erivation : exemple
a := a + b a L(G1 )
S

I
a

:=

Th
eorie des langages
N

19 / 27

Grammaires

Arbres de d
erivation : exemple
aaba L(G3 ). Il existe deux arbres de derivation differents pour ce mot.
S
a

S
a

S


S
a

S


S
a

S
a

S


Th
eorie des langages
N

20 / 27

Grammaires

Arbres de d
erivation : exemple
aaba L(G3 ). Il existe deux arbres de derivation differents pour ce mot.
S
a

S
a

S
a

S


S
a

S
a

S


La grammaire est ambig


ue.
Th
eorie des langages
N

20 / 27

Grammaires

Grammaires ambig
ues

Ambiguit
e
Une grammaire G est ambig
ue sil existe un mot de L(G ) qui a au
moins deux derivations LPG `a partir de S (et donc deux arbres de
derivation).
Dans le cas contraire G est non ambig
ue.

Th
eorie des langages
N

21 / 27

Grammaires

Grammaires ambig
ues

Ambiguit
e
Une grammaire G est ambig
ue sil existe un mot de L(G ) qui a au
moins deux derivations LPG `a partir de S (et donc deux arbres de
derivation).
Dans le cas contraire G est non ambig
ue.
G1 est ambig
ue.

Th
eorie des langages
N

21 / 27

Grammaires

Grammaires ambig
ues
Th
eor`
eme

Etant donne une grammaire G , un mot est genere par G (S


w ) si
G

et seulement si il existe un arbre de derivation qui gen`ere w .

Th
eorie des langages
N

22 / 27

Grammaires

Grammaires ambig
ues
Th
eor`
eme

Etant donne une grammaire G , un mot est genere par G (S


w ) si
G

et seulement si il existe un arbre de derivation qui gen`ere w .


Langage ambig
ue
Un langage est ambig
ue de facon inh
erente si toutes les grammaires
qui lengendrent sont ambig
ues.
On dira quun langage est non ambig
ue sil nest pas ambig
ue de facon
inherente.

Th
eorie des langages
N

22 / 27

Grammaires

Grammaires ambig
ues
Th
eor`
eme

Etant donne une grammaire G , un mot est genere par G (S


w ) si
G

et seulement si il existe un arbre de derivation qui gen`ere w .


Langage ambig
ue
Un langage est ambig
ue de facon inh
erente si toutes les grammaires
qui lengendrent sont ambig
ues.
On dira quun langage est non ambig
ue sil nest pas ambig
ue de facon
inherente.
Lemme de Parikh
Il existe un langage ambig
ue de facon inherente.
L = {ap bq c r |p = q ou q = r avec p, q, r 1}
Th
eorie des langages
N

22 / 27

Grammaires

Grammaires

Principe de base
Definitions
Arbres de derivation
Caracterisation du langage genere par une grammaire
Types de grammaires

Th
eorie des langages
N

23 / 27

Grammaires

Caract
erisation dun langage
Probl`
eme
Soit une grammaire G qui gen`ere le langage L(G ).
Soit L une caracterisation du langage genere.
On veut prouver que L = L(G ).

Th
eorie des langages
N

24 / 27

Grammaires

Caract
erisation dun langage
Probl`
eme
Soit une grammaire G qui gen`ere le langage L(G ).
Soit L une caracterisation du langage genere.
On veut prouver que L = L(G ).

Grammaire G3
1. S aS
2. S aSbS

L = {w X |w 0 prefixe de w alors |w 0 |a |w 0 |b }

3. S 

Th
eorie des langages
N

24 / 27

Grammaires

Caract
erisation dun langage
Probl`
eme
Soit une grammaire G qui gen`ere le langage L(G ).
Soit L une caracterisation du langage genere.
On veut prouver que L = L(G ).

Grammaire G3
1. S aS
2. S aSbS

L = {w X |w 0 prefixe de w alors |w 0 |a |w 0 |b }

3. S 

On doit montrer legalite de ces deux langages, on proc`ede par double


inclusion.
L(G3 ) L. On proc`ede par induction sur le nombre dutilisation des
r`egles 1. et 2.
L L(G3 ). On proc`ede par induction sur la longueur des mots de L.
Th
eorie des langages
N

24 / 27

Grammaires

Grammaires

Principe de base
Definitions
Arbres de derivation
Caracterisation du langage genere par une grammaire
Types de grammaires

Th
eorie des langages
N

25 / 27

Grammaires

Types de grammaires
Type 0 Pas de restriction
Type 1 Grammaires contextuelles (ou sensibles au controle)
(Context-sensitive)
, || ||, V +
Type 2 Grammaires hors-contexte (Context-Free)
A
Type 3 Grammaires reguli`eres (ou lineaires `a droite)
A wB
Aw

A, B V \ non terminaux
w
terminaux

Th
eorie des langages
N

26 / 27

Grammaires

Types de grammaires

T3
R
eguliers
Automate fini

T2
Context Free
Automate `
a pile

T1
Context sensitive
Machine de Turing

T0
Th
eorie des langages
N

27 / 27