02_grammaires
DESCRIPTION
CTRANSCRIPT
-
Theorie des langages
Grammaires
Elise Bonzonhttp://web.mi.parisdescartes.fr/vbonzon/
1 / 27Theorie des langages
N
-
Grammaires
Grammaires
Principe de baseDefinitionsArbres de derivationCaracterisation du langage genere par une grammaireTypes de grammaires
2 / 27Theorie des langages
N
-
Grammaires
Grammaires
Principe de baseDefinitionsArbres de derivationCaracterisation du langage genere par une grammaireTypes de grammaires
3 / 27Theorie des langages
N
-
Grammaires
Principe de base
Ensemble de re`gles pour generer les mots du langage
Sous la forme de re`gles de reecriture
Remplacer une sequence de symboles par une autre sequenceMots generes = mots obtenus a` partir dun symbole special appelesymbole de depart ou axiome
4 / 27Theorie des langages
N
-
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 verbeUn groupe complement dobjet (article, adjectif, nom)
5 / 27Theorie des langages
N
-
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 verbeUn groupe complement dobjet (article, adjectif, nom)
5 / 27Theorie des langages
N
-
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 verbeUn groupe complement dobjet (article, adjectif, nom)
5 / 27Theorie des langages
N
-
Grammaires
Exemple
Re`gles de production
1. Phrase SujetVerbeComplement2. Sujet Groupe Nominal3. Complement Groupe Nominal4. Groupe Nominal ArticleNom5. Groupe Nominal ArticleAdjectifNom6. Article la7. Nom dame | fille8. Adjectif vieille | petite9. Verbe regarde
6 / 27Theorie des langages
N
-
Grammaires
Grammaires
Principe de baseDefinitionsArbres de derivationCaracterisation du langage genere par une grammaireTypes de grammaires
7 / 27Theorie des langages
N
-
Grammaires
Grammaire
Grammaire
Une grammaire est definie par un quadruplet G = V ,,P,S ou`V est un alphabet
V est lensemble des symboles terminauxV \ est lensemble des symboles non terminauxS V \ est le symbole de depart ou axiomeP (V+ V ) est lensemble (fini) de re`gles de production
Notations :
: lettres minuscules
V \ : lettre majusculesRe`gles de production :
Signification intuitive : lelement V+ peut etre remplace par V
8 / 27Theorie des langages
N
-
Grammaires
Grammaire
Grammaire
Une grammaire est definie par un quadruplet G = V ,,P,S ou`V est un alphabet
V est lensemble des symboles terminauxV \ est lensemble des symboles non terminauxS V \ est le symbole de depart ou axiomeP (V+ V ) est lensemble (fini) de re`gles de production
Notations :
: lettres minuscules
V \ : lettre majusculesRe`gles de production :
Signification intuitive : lelement V+ peut etre remplace par V
8 / 27Theorie des langages
N
-
Grammaires
Grammaire : exemple
Soit G1 = V ,,P,S avec = {:=, a, b, c,+, , ), (}V \ = {S , I ,E}Axiome S
8 re`gles de production :
S I := E I aI b I cE E + E E E EE (E) E I
On peut aussi ecrire I a|b|c.
9 / 27Theorie des langages
N
-
Grammaires
Grammaire : exemple
Soit G1 = V ,,P,S avec = {:=, a, b, c,+, , ), (}V \ = {S , I ,E}Axiome S
8 re`gles de production :
S I := E I aI b I cE E + E E E EE (E) E I
On peut aussi ecrire I a|b|c.
9 / 27Theorie des langages
N
-
Grammaires
Grammaire : exemple
Soit G2 = V ,,P,S avec = {a, b}V \ = {S}Axiome S
3 re`gles de production :
S aSaS SbSS
10 / 27Theorie des langages
N
-
Grammaires
Grammaire : exemple
Soit G3 = V ,,P,S avec = {a, b}V \ = {S}Axiome S
3 re`gles de production :
S aSS aSbSS
11 / 27Theorie des langages
N
-
Grammaires
Grammaire hors contexte
Grammaire hors contexte
Soit G = V ,,P,S. G est dite hors contexte (context-free) si tousles re`gles sont de la forme
A ou` A V \ (symbole non terminal), et V
12 / 27Theorie des langages
N
-
Grammaires
Derivation
Derivation en une etape
Soit G = V ,,P,S, u V+ et v V . G permet de deriver v deu en une etape, note u
Gv , si et seulement si
u = xuy
v = xv y
u v est dans P
Derivation en plusieurs etapes
G permet de deriver v de u en plusieurs etapes, note uG
v , si et
seulement si k 0 et v0, . . . , vk V tels queu = v0
v = vk
vi G
vi+1 pour 0 i < k
13 / 27Theorie des langages
N
-
Grammaires
Derivation
Derivation en une etape
Soit G = V ,,P,S, u V+ et v V . G permet de deriver v deu en une etape, note u
Gv , si et seulement si
u = xuy
v = xv y
u v est dans P
Derivation en plusieurs etapes
G permet de deriver v de u en plusieurs etapes, note uG
v , si et
seulement si k 0 et v0, . . . , vk V tels queu = v0
v = vk
vi G
vi+1 pour 0 i < k13 / 27
Theorie des langages
N
-
Grammaires
Langage genere par une grammaire
Mots generes par une grammaire
Soit G = V ,,P,S.Les mots generes par G sont les mots v (symboles terminaux)qui peuvent etre derives a` partir de laxiome : S
G
v .
Langage genere par une grammaire
Soit G = V ,,P,S.Le langage genere par G , note L(G ) est lensemble des mots generespar G .
L(G ) = {v |S G
v}
14 / 27Theorie des langages
N
-
Grammaires
Langage genere par une grammaire
Mots generes par une grammaire
Soit G = V ,,P,S.Les mots generes par G sont les mots v (symboles terminaux)qui peuvent etre derives a` partir de laxiome : S
G
v .
Langage genere par une grammaire
Soit G = V ,,P,S.Le langage genere par G , note L(G ) est lensemble des mots generespar G .
L(G ) = {v |S G
v}
14 / 27Theorie des langages
N
-
Grammaires
Grammaire : exempleSoit G3 = V ,,P,S avec
= {a, b}V \ = {S}Axiome S
3 re`gles de production :
S aSS aSbSS
On veut montrer que aaba L(G )S
G3aSbS
G3aSbaS
G3aSba
G3aaSba
G3aaba
G3aaba
Seconde derivation possible :
S G3
aSbS G3
aaSbS G3
aabS G3
aaba G3
aaba
15 / 27Theorie des langages
N
-
Grammaires
Grammaire : exempleSoit G3 = V ,,P,S avec
= {a, b}V \ = {S}Axiome S
3 re`gles de production :
S aSS aSbSS
On veut montrer que aaba L(G )
S G3
aSbS G3
aSbaS G3
aSba G3
aaSba G3
aaba G3
aaba
Seconde derivation possible :
S G3
aSbS G3
aaSbS G3
aabS G3
aaba G3
aaba
15 / 27Theorie des langages
N
-
Grammaires
Grammaire : exempleSoit G3 = V ,,P,S avec
= {a, b}V \ = {S}Axiome S
3 re`gles de production :
S aSS aSbSS
On veut montrer que aaba L(G )S
G3aSbS
G3aSbaS
G3aSba
G3aaSba
G3aaba
G3aaba
Seconde derivation possible :
S G3
aSbS G3
aaSbS G3
aabS G3
aaba G3
aaba
15 / 27Theorie des langages
N
-
Grammaires
Grammaire : exempleSoit G3 = V ,,P,S avec
= {a, b}V \ = {S}Axiome S
3 re`gles de production :
S aSS aSbSS
On veut montrer que aaba L(G )S
G3aSbS
G3aSbaS
G3aSba
G3aaSba
G3aaba
G3aaba
Seconde derivation possible :
S G3
aSbS G3
aaSbS G3
aabS G3
aaba G3
aaba
15 / 27Theorie des langages
N
-
Grammaires
Derivation la plus a` gauche
Derivation la plus a` gauche (LPG)
Soit G = V ,,P,S, et w SG
w est une derivation la plus a` gauche (LPG) si, a` chaque
etape de la derivation, cest la variable la plus a` gauche qui est derivee.Donc, si w1, . . . ,wn tels que
S = w0 G
w1 G. . .
Gwn
Gwn+1 = w , et
i , 0 i nwi = uiAivi ,wi+1 = uiivi etAi i
alors ui (ui est un symbole terminal, et ne contient donc pas devariable).
16 / 27Theorie des langages
N
-
Grammaires
Grammaires
Principe de baseDefinitionsArbres de derivationCaracterisation du langage genere par une grammaireTypes de grammaires
17 / 27Theorie des langages
N
-
Grammaires
Arbres de derivation pour une gram-maire hors contexte
Arbres de derivation
Soit G = V ,,P,S une grammaire hors contexte. Un arbre D estun arbre de derivation 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 (symbolesterminaux)
Letiquette dune feuille est le mot vide seulement si la feuille est filleunique
Les nuds de D qui ne sont pas des feuilles sont etiquetes par unsymbole non terminal (V \ )Pour tout nud, si Y est letiquette du nud, et si Z1, . . . ,Zn sont lesnuds de ses fils, dans cet ordre, alors Y Z1 . . .Zn est une re`gleLe mot des feuilles de D, cest-a`-dire le mot obtenu en concatenantles etiquettes des feuilles de la gauche vers la droite, est le mot w
18 / 27Theorie des langages
N
-
Grammaires
Arbres de derivation : exemplea := a + b a L(G1)
S
I
a
:= E
E
I
a
+ E
E
I
b
E
I
a
19 / 27Theorie des langages
N
-
Grammaires
Arbres de derivation : exempleaaba L(G3). Il existe deux arbres de derivation differents pour ce mot.
S
a S b S
a S
a S
S
a S
a S b S
a S
La grammaire est ambigue.
20 / 27Theorie des langages
N
-
Grammaires
Arbres de derivation : exempleaaba L(G3). Il existe deux arbres de derivation differents pour ce mot.
S
a S b S
a S
a S
S
a S
a S b S
a S
La grammaire est ambigue.
20 / 27Theorie des langages
N
-
Grammaires
Grammaires ambigues
Ambiguite
Une grammaire G est ambigue sil existe un mot de L(G ) qui a aumoins deux derivations LPG a` partir de S (et donc deux arbres dederivation).Dans le cas contraire G est non ambigue.
G1 est ambigue.
21 / 27Theorie des langages
N
-
Grammaires
Grammaires ambigues
Ambiguite
Une grammaire G est ambigue sil existe un mot de L(G ) qui a aumoins deux derivations LPG a` partir de S (et donc deux arbres dederivation).Dans le cas contraire G est non ambigue.
G1 est ambigue.
21 / 27Theorie des langages
N
-
Grammaires
Grammaires ambigues
Theore`me
Etant donne une grammaire G , un mot est genere par G (SG
w) si
et seulement si il existe un arbre de derivation qui gene`re w .
Langage ambigue
Un langage est ambigue de facon inherente si toutes les grammairesqui lengendrent sont ambigues.On dira quun langage est non ambigue sil nest pas ambigue de faconinherente.
Lemme de Parikh
Il existe un langage ambigue de facon inherente.
L = {apbqc r |p = q ou q = r avec p, q, r 1}
22 / 27Theorie des langages
N
-
Grammaires
Grammaires ambigues
Theore`me
Etant donne une grammaire G , un mot est genere par G (SG
w) si
et seulement si il existe un arbre de derivation qui gene`re w .
Langage ambigue
Un langage est ambigue de facon inherente si toutes les grammairesqui lengendrent sont ambigues.On dira quun langage est non ambigue sil nest pas ambigue de faconinherente.
Lemme de Parikh
Il existe un langage ambigue de facon inherente.
L = {apbqc r |p = q ou q = r avec p, q, r 1}
22 / 27Theorie des langages
N
-
Grammaires
Grammaires ambigues
Theore`me
Etant donne une grammaire G , un mot est genere par G (SG
w) si
et seulement si il existe un arbre de derivation qui gene`re w .
Langage ambigue
Un langage est ambigue de facon inherente si toutes les grammairesqui lengendrent sont ambigues.On dira quun langage est non ambigue sil nest pas ambigue de faconinherente.
Lemme de Parikh
Il existe un langage ambigue de facon inherente.
L = {apbqc r |p = q ou q = r avec p, q, r 1}
22 / 27Theorie des langages
N
-
Grammaires
Grammaires
Principe de baseDefinitionsArbres de derivationCaracterisation du langage genere par une grammaireTypes de grammaires
23 / 27Theorie des langages
N
-
Grammaires
Caracterisation dun langage
Proble`me
Soit une grammaire G qui gene`re le langage L(G ).Soit L une caracterisation du langage genere.On veut prouver que L = L(G ).
Grammaire G3
1. S aS2. S aSbS3. S
L = {w X |w prefixe de w alors |w |a |w |b}
On doit montrer legalite de ces deux langages, on proce`de par doubleinclusion.
L(G3) L. On proce`de par induction sur le nombre dutilisation desre`gles 1. et 2.
L L(G3). On proce`de par induction sur la longueur des mots de L.
24 / 27Theorie des langages
N
-
Grammaires
Caracterisation dun langage
Proble`me
Soit une grammaire G qui gene`re le langage L(G ).Soit L une caracterisation du langage genere.On veut prouver que L = L(G ).
Grammaire G3
1. S aS2. S aSbS3. S
L = {w X |w prefixe de w alors |w |a |w |b}
On doit montrer legalite de ces deux langages, on proce`de par doubleinclusion.
L(G3) L. On proce`de par induction sur le nombre dutilisation desre`gles 1. et 2.
L L(G3). On proce`de par induction sur la longueur des mots de L.
24 / 27Theorie des langages
N
-
Grammaires
Caracterisation dun langage
Proble`me
Soit une grammaire G qui gene`re le langage L(G ).Soit L une caracterisation du langage genere.On veut prouver que L = L(G ).
Grammaire G3
1. S aS2. S aSbS3. S
L = {w X |w prefixe de w alors |w |a |w |b}
On doit montrer legalite de ces deux langages, on proce`de par doubleinclusion.
L(G3) L. On proce`de par induction sur le nombre dutilisation desre`gles 1. et 2.
L L(G3). On proce`de par induction sur la longueur des mots de L.24 / 27
Theorie des langages
N
-
Grammaires
Grammaires
Principe de baseDefinitionsArbres de derivationCaracterisation du langage genere par une grammaireTypes de grammaires
25 / 27Theorie des langages
N
-
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 regulie`res (ou lineaires a` droite)
A wB A,B V \ non terminauxA w w terminaux
26 / 27Theorie des langages
N
-
Grammaires
Types de grammaires
T0
T1Context sensitive
Machine de Turing
T2Context Free
Automate a` pile
T3Reguliers
Automate fini
27 / 27Theorie des langages
N
GrammairesPrincipe de baseDfinitionsArbres de drivationCaractrisation du langage gnr par une grammaireTypes de grammaires