Académique Documents
Professionnel Documents
Culture Documents
Mathématiques et de
l’Informtique
Grammaires formelles
F. Nouioua
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 1
Grammaires Formelles : Définition
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 2
Grammaires Formelles : Notation
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 3
Grammaires Formelles : Proto-Mots
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 4
Grammaires Formelles : Dérivation
avec k 0
∗
avec k ≥ 0
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 5
Grammaires Formelles : Langage généré
L(G) = {w * | S w}
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 6
Grammaires Formelles : Exemples
L1 = {, a, aa, …}
G = ({S}, {a}, {S Sa | }, S)
Sous-ensemble de proto-mots de G
S
Sa
a Saa
aa Saaa
aaa Saaaa
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 7
Grammaires Formelles : Exemples
L2 = {, ab, aabb, aaabbb, …}
G = ({S}, {a, b}, {S aSb | }, S)
Sous-ensemble de proto-mots de G
S
aSb
ab aaSbb
aabb aaaSbbb
aaabbb aaaaSbbbb
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 8
Grammaires Formelles : Exemples
L3 = {, aa, bb, aaaa, abba, baab, bbbb, …}
G = ({S}, {a, b}, {S aSa | bSb | aa | bb }, S)
Sous-ensemble de proto-mots de G
S
aSa aa bb bSb
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 9
Grammaires Formelles : Exemples
L4 = {, abc, aabbcc, aaabbbccc, …}
G = ({S, S1, S2}, {a, b, c}, {S aS1b, S1 b | SS2 , cS2 S2c, bS2 bb}, S)
Sous-ensemble de proto-mots de G
S
aS1c
abc aSS2c
aaS1cS2c
aabcS2c aaSS2cS2c
aabS2cc
aabbcc
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 10
Grammaires Formelles : sens de dérivation
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 11
Grammaires Formelles : arbre de dérivation
Un arbre de dérivation pour G = (N, , P, S) est un arbre ordonné et
étiqueté dont les étiquettes appartiennent à l’ensemble N {}. Si
un noeud de l’arbre est étiqueté par le non terminal A et ses fils sont
étiquetés X1, X2, ..., Xn alors la règle A X1, X2, ..., Xn appartient à P.
E
T + E
F T
a F * T
a F
a
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 12
Grammaires Formelles : arbre de dérivation
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 13
Grammaires Formelles : Ambiguïté
Une grammaire G est ambiguë s’il existe au moins un mot m dans
L(G) auquel correspond plus d’un arbre de dérivation.
Exemple. E E + E | E * E | a
w=a+a*a
E E
E + E E * E
a a
E * E E * E
a a a a
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 14
Types de règles
Les grammaires peuvent être classées en fonction de la forme de leurs règles
de production. On définit cinq types de règles de production :
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 15
Types de règles
Les grammaires peuvent être classées en fonction de la forme de leurs règles
de production. On définit cinq types de règles de production :
Une règle est régulière à gauche si et seulement si elle est de la forme
A xB ou A x avec A, B N et x .
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 16
Types de règles
Les grammaires peuvent être classées en fonction de la forme de leurs règles
de production. On définit cinq types de règles de production :
Une règle est régulière à gauche si et seulement si elle est de la forme
A xB ou A x avec A, B N et x .
Une règle est régulière à droite si et seulement si elle est de la forme
A Bx ou A x avec A, B N et x .
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 17
Types de règles
Les grammaires peuvent être classées en fonction de la forme de leurs règles
de production. On définit cinq types de règles de production :
Une règle est régulière à gauche si et seulement si elle est de la forme
A xB ou A x avec A, B N et x .
Une règle est régulière à droite si et seulement si elle est de la forme
A Bx ou A x avec A, B N et x .
Une règle A est une règle hors-contexte si et seulement si : A N et
(N )*
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 18
Types de règles
Les grammaires peuvent être classées en fonction de la forme de leurs règles
de production. On définit cinq types de règles de production :
Une règle est régulière à gauche si et seulement si elle est de la forme
A xB ou A x avec A, B N et x .
Une règle est régulière à droite si et seulement si elle est de la forme
A Bx ou A x avec A, B N et x .
Une règle A est une règle hors-contexte si et seulement si : A N et
(N )*
Une règle est une règle contextuelle si et seulement si : = gAd
et = gBd avec g, d, B (N )* et A N.
Le nom “contextuelle” provient du fait que A se réécrit B uniquement
dans le contexte g-d.
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 19
Types de règles
Les grammaires peuvent être classées en fonction de la forme de leurs règles
de production. On définit cinq types de règles de production :
Une règle est régulière à gauche si et seulement si elle est de la forme
A xB ou A x avec A, B N et x .
Une règle est régulière à droite si et seulement si elle est de la forme
A Bx ou A x avec A, B N et x .
Une règle A est une règle hors-contexte si et seulement si : A N et
(N )*
Une règle est une règle contextuelle si et seulement si : = gAd
et = gBd avec g, d, B (N )* et A N.
Le nom “contextuelle” provient du fait que A se réécrit B uniquement
dans le contexte g-d.
Une règle est une règle sans restriction si et seulement si : ||1
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 20
Types de grammaires
Une grammaire est :
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 21
Hiérarchie de Chomsky
Grammaires sans restriction
Type 0
Grammaires contextuelles
Type 1
Grammaires régulières
Type 3
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 22
Types de langages
Un langage pouvant être généré par une grammaire de type k et
pas par une grammaire d’un type supérieur dans la hiérarchie,
est appelé un langage de type k.
Type Nom
3 Régulier
2 Hors contexte
1 Sensible au (ou dépendant du ) contexte
0 Récursivement énumérable
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 23
Exemples : langages réguliers
L = {w {a, b}*}
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 24
Exemples : langages réguliers
L = {w {a, b}*}
G = ({S}, {a, b}, {S aS | bS | }, S)
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 25
Exemples : langages réguliers
L = {w {a, b}*}
G = ({S}, {a, b}, {S aS | bS | }, S)
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 26
Exemples : langages réguliers
L = {w {a, b}*}
G = ({S}, {a, b}, {S aS | bS | }, S)
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 27
Exemples : langages réguliers
L = {w {a, b}*}
G = ({S}, {a, b}, {S aS | bS | }, S)
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 28
Exemples : langages réguliers
L = {w {a, b}*}
G = ({S}, {a, b}, {S aS | bS | }, S)
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 29
Exemples : langages réguliers
L = {w {a, b}*}
G = ({S}, {a, b}, {S aS | bS | }, S)
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 30
Exemples : langages réguliers
L = {w {a, b}*}
G = ({S}, {a, b}, {S aS | bS | }, S)
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 31
Exemples : langages hors contexte
L = {anbn | n 0}
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 32
Exemples : langages hors contexte
L = {anbn | n 0}
G = ({S}, {a, b}, {S aSb | }, S)
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 33
Exemples : langages hors contexte
L = {anbn | n 0}
G = ({S}, {a, b}, {S aSb | }, S)
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 34
Exemples : langages hors contexte
L = {anbn | n 0}
G = ({S}, {a, b}, {S aSb | }, S)
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 35
Exemples : langages contextuels
L = {anbncn | n 0}
G = ({S, B, W, X}, {a, b, c}, { S abc | aSBc,
cB WB
WB WX
WX BX
BX BC
bB bb},
S)
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 36
Exemples : langages contextuels
Dérivation de a3b3c3
S 2 aSBc
2 aaSBcBc
1 aaabcBcBc
3 aaabWBcBc
4 aaabWXcBc
5 aaabBXcBc
6 aaabBccBc
3 aaabBcWBc
4 aaabBcWXc
5 aaabBcBXc
6 aaabBcBcc
3 aaabBWBcc
4 aaabBWXcc
5 aaabBBXcc
6 aaabBBccc
7 aaabbBccc
7 aaabbbccc
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 37
Exemples : langages récursivement énumérables
L={ | n ≥ 0}
L = {#x1#x2# . . . #xn | xi {0, 1}* et xi ≠ xj pour tout i ≠ j }
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 38
Grammaire vs Reconnaisseur
Une grammaire d’un langage L permet de générer tous les mots
appartenant à L.
Un reconnaisseur pour un langage L est une machine abstraite qui prend
en entrée un mot w et répond oui si w appartient à L et non sinon.
Pour chaque classe de grammaire, il existe une classe de reconnaisseurs
qui définit la même classe de langages.
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 39
Grammaire vs Reconnaisseur
Une grammaire d’un langage L permet de générer tous les mots
appartenant à L.
Un reconnaisseur pour un langage L est une machine abstraite qui prend
en entrée un mot w et répond oui si w appartient à L et non sinon.
Pour chaque classe de grammaire, il existe une classe de reconnaisseurs
qui définit la même classe de langages.
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 40
Equivalence entre Grammaire régulières et AEFD
(1) d’inverser l’ordre des symboles dans les parties droites des
règles afin d’obtenir une grammaire régulière qui engendre le
même langage mais avec tous les mots inversés,
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 42
Equivalence entre Grammaire régulières et AEFD
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 43
Equivalence entre Grammaire régulières et AEFD
Farid Nouioua. Cours Théorie des langages. 2ème année Licence Informatique. Faculté MI, Université de BBA, 2019-2020 44