Vous êtes sur la page 1sur 36

Thorie des langages et des

automates

Ramzi GUETARI
Anne Universitaire 2010 / 2011

ISI
Institut
Suprieur
Informatique

ISI
Institut
Suprieur
Informatique 1

Plan

Systmes de rcriture
Rduction ou rcriture
Langage engendr par un systme de rcriture
Exemple: le langage des parenthses
Les grammaires
Hirarchie des grammaires et des langages

ISI
Institut
Suprieur
01/11/2010 Informatique 2

Copyright Ramzi GUETARI

1
Systmes de rcriture

Un systme de rcriture sur un alphabet est un sous-ensemble de * *.


C'est
C est donc un ensemble de couples de mots, mots appels rgles de rcriture.
rcriture Le
premier mot est la partie gauche de la rgle, le second en est la partie droite.
Si (l,r) est une rgle (l = left, r = right), on crit le plus souvent : l r.
Exemples :
1 = {a, b}, R1 = {ab a2b2}

2 = {a, b, c}, R2 = {ab ba, bc cb, ac ca}

ISI
Institut
Suprieur
01/11/2010 Informatique 3

Copyright Ramzi GUETARI

Rduction ou rcriture

Soit R un systme de rcriture sur l'alphabet . On dit que le mot w1 * se rduit


en le mot w2 *,, ou se rcrit directement en w2, et on note w1 w2, si et
seulement si :

il existe une rgle l r dans R


il existe deux mots u et v dans *

Tels que : w1 = ulv et w2 = urv

ISI
Institut
Suprieur
01/11/2010 Informatique 4

Copyright Ramzi GUETARI

2
Rduction ou rcriture

Exemple R1 :

ab a2b2 u=v= w1 = ab, w2 = a2b2

a2b2 = aabb aa2b2b = a3b3 u = a, v = b

bab ba2b2 u = b, v =

ISI
Institut
Suprieur
01/11/2010 Informatique 5

Copyright Ramzi GUETARI

Rduction ou rcriture

Extension de la rduction : On dfinit la clture rflexive et transitive


* de la relation
telle que pour tous les mots u et v de * on note :
0
uv si et seulement si u = v.
1
uv si et seulement si u v.
n n1
u v (n > 0) si et seulement si w * u w et w v.
(On passe de u v en appliquant n fois une rgle de R)

n
On dit que u se rcrit en v et on note u
* v si et seulement si n 0 tel que u v

n1
Exemple R1 : ab anbn n 0

ISI
Institut
Suprieur
01/11/2010 Informatique 6

Copyright Ramzi GUETARI

3
Langage engendr par un systme de rcriture

Si R est un systme de rcriture sur et si w est un mot de *, le langage engendr


par R partir de w est :

L (R, w) = {z * / w
* z}

ISI
Institut
Suprieur
01/11/2010 Informatique 7

Copyright Ramzi GUETARI

Langage engendr par un systme de rcriture

Exemples :

L (R1, ab) = anbn / n > 0

L (R2, abc) = {abc, bac, bca, cba, acb, cab}

bac bca

abc cba

acb cab

ISI
Institut
Suprieur
01/11/2010 Informatique 8

Copyright Ramzi GUETARI

4
Langage engendr par un systme de rcriture

Si L (R, w) = {w}, on dit que w est un mot minimal pour R.


Exemple : L (R2, cba) = {cba}

Si w est un mot minimal pour R et s'il existe un mot v tel que w L (R, v), on dit
que w est une forme normale de v.
Exemple : pour R2, cba est une forme normale de abc, acb, bac, bca, cab et cba.

ISI
Institut
Suprieur
01/11/2010 Informatique 9
Copyright Ramzi GUETARI

Exemple : Le Langage des parenthses

Pour voir si une expression arithmtique avec parenthses est quilibre, on


assemble les parenthses deux deux en commenant par celles qui se trouvent
l'intrieur :

( ( ( ( ) ( ) ) ) ( ( ) ) ( ) )

L'expression rduite ses seules parenthses doit avoir comme forme minimale le
mot vide pour le systme de rcriture dont la rgle unique est :

()

ISI
Institut
Suprieur
01/11/2010 Informatique 10
Copyright Ramzi GUETARI

5
Exemple : Le Langage des parenthses

( ( ( ( ) ( ) ) ) ( ( ) ) ( ) )
( ( ( ( ) ) ) ( ( ) ) ( ) )
( ( ( ) ) ( ( ) ) ( ) )
( ( ) ( ( ) ) ( ) )
( ( ( ) ) ( ) )
( ( ) ( ) )
( ( ) )
( )

ISI
Institut
Suprieur
01/11/2010 Informatique 11
Copyright Ramzi GUETARI

Exemple : Le Langage des parenthses

L'ensemble des expressions bien parenthses est donc l'ensemble des mots w de
{ ( , ) }}* tels que w
*

ISI
Institut
Suprieur
01/11/2010 Informatique 12
Copyright Ramzi GUETARI

6
Les grammaires

Une grammaire G est un systme de rcriture dans un alphabet Vn Vt form de


deux alphabets disjoints (Vn Vt = ):


Vt l'alphabet terminal, celui des mots engendrs

Vn l'alphabet non terminal, ou alphabet des variables, contenant un lment


particulier : l'axiome, et dont la partie gauche de chaque rgle contient au moins
une variable.
V = Vn Vt est appel le vocabulaire de la grammaire G.

ISI
Institut
Suprieur
01/11/2010 Informatique 13
Copyright Ramzi GUETARI

Les grammaires

Exemple :
{ h t chien,
Vt = {chat, hi le,l mord,d voit}
it}
Vn = {phrase, verbe, groupe_nominal, article, nom}

phrase groupe_nominal verbe groupe_nominal


groupe_nominal article nom
article le
nom chat
nom chien
verbe mord
verbe voit
ISI
Institut
Suprieur
01/11/2010 Informatique 14
Copyright Ramzi GUETARI

7
Les grammaires

On va pouvoir engendrer ("driver") huit phrases diffrentes :


phrase * le chat voit le chien

phrase * le chat voit le chat

phrase * le chien mord le chat

etc.

On a donc besoin de quatre choses diffrentes pour dfinir une grammaire :


Vt : est un ensemble fini de symboles dits terminaux, appel vocabulaire terminal.
Vn : est un ensemble fini (disjoint de Vt) de symboles dits non-terminaux, appel
vocabulaire non terminal.
Laxiome : est un non-terminal particulier appel aussi source.
Les rgles : R (V* \ Vt* ) V* est un ensemble fini de rgles de grammaire
notes g d si (g, d) R.
ISI
Institut
Suprieur
01/11/2010 Informatique 15
Copyright Ramzi GUETARI

Les grammaires

Une grammaire est une machine rcrire cestdire, une machine faire des
substitutions.
substitutions

Une rgle de production (l, r) P est note l r : l est la partie gauche, contenant
au moins une variable, r est la partie droite.

Pour les grammaires, on dit drivation plutt que rcriture, et on note + au lieu de

pour dcrire l'union de deux langages : X + V = X V est l'alphabet de la grammaire.

ISI
Institut
Suprieur
01/11/2010 Informatique 16
Copyright Ramzi GUETARI

8
Les grammaires

Langage engendr par une grammaire


Une grammaire est un mcanisme permettant dengendrer les phrases du langage, en
rcrivant un mot u V en un nouveau mot v V.

Lopration de rcriture consiste remplacer une occurrence (quelconque) dun non-


terminal N (quelconque) de Vn prsent dans u par un membre droit de rgle dont N
est membre gauche.

Ce processus est itr partir de la source jusqu llimination complte des non-
terminaux.

ISI
Institut
Suprieur
01/11/2010 Informatique 17
Copyright Ramzi GUETARI

Les grammaires

Dfinition
tant donne une grammaire G = {Vt, Vn, S, R}, on dit que le mot u V* se rcrit
en le mot v V* dans G avec la rgle g d, et lon note :
gd
u v
Si :
1) u = w1gw2, o w1 V* et w2 V*.
2) v = w1dw2
On dit que le mot u V* se rcrit en le mot v V* dans la grammaire G sil existe
une rgle g d R telle que u se rcrit en v dans G.
Enfin, on dit que le mot v V* drive du mot u V*, dans la grammaire G, ce que
lon note par u * v, sil existe une suite finie w , w , . . . , w de mots de V* telle que
0 1 n
w0 = u, wi wi+1 pour tout i [0, n 1], et wn = v.
ISI
Institut
Suprieur
01/11/2010 Informatique 18
Copyright Ramzi GUETARI

9
Les grammaires

Exemple
N 0
N 1 N 0
N 1M N 1M
M 0 M
M 1 M 0M
M 0M M 1M
M 1M

Les deux grammaires dcrivent les entiers crits en binaire

ISI
Institut
Suprieur
01/11/2010 Informatique 19
Copyright Ramzi GUETARI

Les grammaires

Exemple
En utilisant la premire grammaire :

N 1M 11M 110M 1101M 11010

En utilisant la deuxime grammaire :

N 1M 11M 110M 1101M 11010M 11010

Le mot 11010M drive du mot 1M

1M 11M 110M 1101M 11010M


ISI
Institut
Suprieur
01/11/2010 Informatique 20
Copyright Ramzi GUETARI

10
Les grammaires

Dfinition
Le langage engendr par la grammaire G est lensemble des mots de Vt qui drivent
de laxiome de G, que lon note par L (G).

Remarque
Les grammaires de lexemple prcdent (p. 19) peuvent aussi tre spcifies de la
manire suivante :

N 0 | 1 | 1M N 0 | 1M
M 0 | 1 | 0M | 1M M | 0M | 1M

ISI
Institut
Suprieur
01/11/2010 Informatique 21
Copyright Ramzi GUETARI

Classification de Chomsky

Les grammaires telles que nous venons de les dfinir sont dites gnrales. Les
langages engendrs sont dits de type 0 dans la hirarchie de Chomsky. On verra qu
quils
ils
sont reconnus par des machines de Turing. Les grammaires sont classes en :
Grammaires contextuelles.
Grammaires hors-contexte.
Grammaires rgulires.

ISI
Institut
Suprieur
01/11/2010 Informatique 22
Copyright Ramzi GUETARI

11
Classification de Chomsky

Grammaires contextuelles
La grammaire suivante dcrit le langage {anbncn | n 0}. Ses rgles ont la particularit
davoir un membre droit de taille suprieure ou gale celle de leur membre gauche.
S aSBC|
CB BC
aB ab
bB bb
bC bc
cC cc

ISI
Institut
Suprieur
01/11/2010 Informatique 23
Copyright Ramzi GUETARI

Classification de Chomsky

Grammaires contextuelles
a3b3c3
S aSBC
a(aSBC)BC
a(a(aSBC)BC)BC S aaabbbccC cC cc
aaaBCBCBC CB BC aaabbbccc
aaaBBCCBC CB BC
aaaBBCBCC CB BC
aaaBBBCCC aB ab
aaabBBCCC bB bb
aaabbBCCC bB bb
aaabbbCCC bC bc
aaabbbcCC cC cc
ISI
Institut
Suprieur
01/11/2010 Informatique 24
Copyright Ramzi GUETARI

12
Classification de Chomsky

Grammaires contextuelles
Dfinition
tant donne une grammaire G = {Vt, Vn, S, R}, une rgle de R est dite contextuelle
si elle est de la forme g d avec |g| |d|. Une grammaire est contextuelle si toutes
ses rgles le sont, et le langage engendr est alors dit contextuel ou de type 1.

Les langages de type sont reconnus par des machines de Turing particulires utilisant
un espace mmoire
born.

ISI
Institut
Suprieur
01/11/2010 Informatique 25
Copyright Ramzi GUETARI

Classification de Chomsky

Grammaires hors-
hors-contexte
La grammaire suivante dcrit le langage {anbn | n 0}. Cette grammaire a une
particularit : le membre gauche de chaque rgle est un non-terminal..
S aSb|

ISI
Institut
Suprieur
01/11/2010 Informatique 26
Copyright Ramzi GUETARI

13
Classification de Chomsky

Grammaires hors
hors--contexte ou algbriques
Dfinition
tant donne une grammaire G = {Vt, Vn, S, R}, une rgle de R est dite hors-contexte
si elle est de la forme N u o u V* . Une grammaire est hors-contexte si toutes
ses rgles le sont, et le langage engendr est alors dit hors-contexte ou de type 2. On
note par LHC la classe des langage hors-contexte.

Les langages hors-contexte sont reconnus par des machines de Turing particulires,

les automates pile, que nous dcouvrirons plus loin dans ce cours.

ISI
Institut
Suprieur
01/11/2010 Informatique 27
Copyright Ramzi GUETARI

Classification de Chomsky

Grammaires rgulires
Les grammaires de lexemple suivant sont hors-contexte, mais elles ont une
particularit supplmentaire : le membre droit possde au plus une occurrence de
symbole non terminal, situe lextrmit droite.

N 0 | 1 | 1M N 0 | 1M
M 0 | 1 | 0M | 1M M | 0M | 1M

ISI
Institut
Suprieur
01/11/2010 Informatique 28
Copyright Ramzi GUETARI

14
Classification de Chomsky

Grammaires rgulires
Dfinition
tant donne une grammaire G = {Vt, Vn, S, R}, une rgle de R est dite rgulire si
elle est de la forme N u ou N uM, o M, N Vn et u Vt* . Une grammaire
est rgulire si toutes ses rgles le sont, et un langage engendr par une telle
grammaire est alors dit rgulier ou de type 3.

Les langages rguliers


sont bien sr
reconnus par des machines de Turing
particulires.

Un langage est dit rgulier si et seulement si il est reconnaissable


reconnaissable.

ISI
Institut
Suprieur
01/11/2010 Informatique 29
Copyright Ramzi GUETARI

Grammaires et drivation

Une drivation est l'application rpte de rgles qui commence avec le symbole
de dpart et se termine avec une squence de terminaux.
terminaux
chaque tape d'une drivation, on obtient un mot appel forme sententielle.
Une phrase est une forme sententielle ne contenant que des terminaux.
Les drivations dans G = (V, S, R) sont des suites de rcritures que lon peut
oprer sur les lments de ( + V) par application de ses rgles.
Une drivation lmentaire est lapplication dune rgle de la grammaire.
Une drivation lmentaire se dfinit pour 1 ( + V), 2 ( + V), X V
par:
1X2 11
pour toute rgle X de la grammaire.
ISI
Institut
Suprieur
01/11/2010 Informatique 30

Copyright Ramzi GUETARI

15
Grammaires et drivation
i
Une drivation de longueur i note : est une suite de i drivations
lmentaires qui ssenchanent,
enchanent, qui se dfinit par rcurrence sur i :
0: Pas dapplication de rgle.
i 1
ii+1: Une application de plus
i
On notera
*
pour signifier quil existe une drivation .

ISI
Institut
Suprieur
01/11/2010 Informatique 31

Copyright Ramzi GUETARI

Grammaires et drivation

Considrons le langages des expressions arithmtiques. Cette grammaire aura alors


pour symboles terminaux Vt = {{+,, , , (, ), Id, Cte} et pour non
non-terminaux
terminaux llunique
unique
symbole E qui sera donc la source :

E Id | Cte | E + E | E E | (E)

Cette grammaire permet dengendrer lexpression arithmtique x + 2.5 4 + (y + z),


en supposant que les mots 2.5 et 4 font partie du langage engendr par la grammaire
des constantes, et que x, y, z font partie du langage engendr par la grammaire des
variables.

ISI
Institut
Suprieur
01/11/2010 Informatique 32

Copyright Ramzi GUETARI

16
Grammaires et drivation

E Id | Cte | E + E | E E | (E) x + 2.5 4 + (y + z)


EE+E
E Id + E
E Id + E E
E Id + Cte E
Chaque fois on prend le terminal le plus
E Id + Cte E + E gauche drivation gauche.
E Id + Cte Cte + E
E Id + Cte Cte + ((E))
E Id + Cte Cte + (E + E)
E Id + Cte Cte + (Id + E)
E Id + Cte Cte + (Id + Id)

x 2.5 4 y z ISI
Institut
Suprieur
01/11/2010 Informatique 33

Copyright Ramzi GUETARI

Grammaires et drivation

E Id | Cte | E + E | E E | (E) x + 2.5 4 + (y + z)


EE+E
E E + (E)
E E + (E + E)
E E + (E + Id)
Chaque fois on prend le terminal le plus
E E + (Id + Id) droite drivation droite.
E E E + (Id + Id)
E E Cte + ((Id + Id))
E E + E Cte + (Id + Id)
E E + Cte Cte + (Id + Id)
E Id + Cte Cte + (Id + Id)

x 2.5 4 y z ISI
Institut
Suprieur
01/11/2010 Informatique 34

Copyright Ramzi GUETARI

17
Grammaires et drivation

Les drivations sont elles quivalentes ?


donneront elles lieu au mme calcul ?
Dune manire gnrale, un mot driv aura-t-il le mme sens selon que la
drivation a t effectue droite ou gauche ?
Le calcul qui est associ un mot w dpend non seulement du mot lui-mme, mais
aussi de la drivation qui a servi le fabriquer !
Cette dpendance sexprime par un parenthsage du mot, qui peut tre implicite
dans le mot w, mais devient explicite dans la drivation.

ISI
Institut
Suprieur
01/11/2010 Informatique 35
Copyright Ramzi GUETARI

Grammaires et drivation

Le parenthsage explicite du mot x + 2.5 4 + (y + z) tel quil est dfini par la


premire drivation est (x + (2.5 (4 + (y + z)))).
La seconde drivation donne le parenthsage suivant (((x + 2.5) 4) + (y + z)).
Le parenthsage attendu nest ni lun ni lautre mais ((x + (2.5 4)) + (y + z)).
Le bon parenthsage traduit les conventions de dsambigusation habituelles,
savoir que la multiplication a priorit sur laddition, et que multiplication et laddition
associent gauche, cest- dire que lexpression x + y + z doit tre interprt
comme tant ((x + y) + z).

ISI
Institut
Suprieur
01/11/2010 Informatique 36
Copyright Ramzi GUETARI

18
Grammaires et drivation

tant donn la grammaire des expressions arithmtiques :


E Id | Cte | E + E | E E | (E)
Considrons la phrase Id + Id Id.
La drivation gauche de cette phrase est :

E E + E E E E
Id + E E + E E
Id + E E Id + E E
Id + Id E Id + Id E
Id + Id Id Id + Id Id

ISI
Institut
Suprieur
01/11/2010 Informatique 37
Copyright Ramzi GUETARI

Forme normale de Chomsky

Dfinition
Une grammaire G est ambigu sil existe un mot w L(G) qui possde plusieurs
drivations gauches (droites) dans G.

ISI
Institut
Suprieur
01/11/2010 Informatique 38
Copyright Ramzi GUETARI

19
Reprsentation arborescente

Une drivation est lenchanement squentiel de drivations lmentaires, mais ceci


est gnralement obtenu au prix de choix qui,
qui en ralit,
ralit sont arbitraires.
arbitraires

Soient Y et Y deux rgles de G. Elles sont applicables tout mot de la


forme 1Y 2Y 3 pour produire les deux drivations :

D1 : 1Y2Y3 12Y3 123


D2 : 1Y2Y3 1Y23 123

La commutation de rgles dans une drivation est le remplacement de D1 par D2 ou


celui de D2 par D1 : une telle opration ne modifie pas la nature dune drivation mais
seulement la faon de la dcrire.

ISI
Institut
Suprieur
01/11/2010 Informatique 39
Copyright Ramzi GUETARI

Reprsentation arborescente

Dfinition
Deux drivations sont dites quivalentes si et seulement si on peut transformer lune
en lautre par une suite de commutations de rgles.

ISI
Institut
Suprieur
01/11/2010 Informatique 40
Copyright Ramzi GUETARI

20
Reprsentation arborescente

Arbre de drivation dune grammaire


Lide est simplement darborer chaque rgle X , X 1 ... m de G, en la
reprsentant sous la forme dun embranchement ordonn, sur le modle cidessous :

X X

1 m

ISI
Institut
Suprieur
01/11/2010 Informatique 41
Copyright Ramzi GUETARI

Reprsentation arborescente

Exemple : id + id id

E E+E E EE
id + E E+EE
id + E E id + E E
id + id E id + id E
id + id id id + id id

E E
E + E E E
id E E E + E id
id id id id

ISI
Institut
Suprieur
01/11/2010 Informatique 42
Copyright Ramzi GUETARI

21
Arbre de drivation

Dfinition
Dans un arbre :
un nud est tiquet par un lment de V et une feuille par un lment de + V

lembranchement dun nud tiquet par un mot X V est dtermin par une
rgle X de G.
Les descendants immdiats dun tel nud sont tiquets par les caractres
successifs de .
Dans
D l cas o = , nest
le t pas une feuille,
f ill mais
i lindication
li di ti de d labsence
l b
dfinitive de toute feuille !

ISI
Institut
Suprieur
01/11/2010 Informatique 43
Copyright Ramzi GUETARI

Arbre de drivation

D(G) dsigne lensemble des arbres de drivation de G.


Un arbre a D(G) est dsign schmatiquement par :
i
a:

o
+ V est ltiquette de la racine,
( + V)* est la frondaison, cestdire, le mot constitu des tiquettes de ses
feuilles,
i est le nombre de ses nuds.

ISI
Institut
Suprieur
01/11/2010 Informatique 44
Copyright Ramzi GUETARI

22
Arbre de drivation

Construction inductive de D(G)


Deux types darbres et une opration :
Les deux types darbres sont :
0
Les arbres triviaux : tout + V dfinit un arbre dont la racine est une feuille
tiquete .
1
Les arbres lmentaires : une rgle X dfinit un arbre X .
Lopration : greffe darbre lmentaire :
i 1
soit un arbre a : X 1Y2 et soit b : Y un arbre lmentaire dfini par une
rgle Y .
i+1
On obtient un arbre c : X 12 en greffant b sur la feuille Y de a :

ISI
Institut
Suprieur
01/11/2010 Informatique 45
Copyright Ramzi GUETARI

Arbre de drivation

Construction inductive de D(G)


X

Une arborescence est une faon de reprsenter une


drivation. Dans la pratique, on parle de drivations
ISI
Institut
et on prfre manipuler des arborescences. Suprieur
Informatique
01/11/2010 46
Copyright Ramzi GUETARI

23
Dfinition de monode

Un monode est un triplet (D, , e) o


D estt un ensemble,
bl
: D D D est une loi de composition interne que lon notera (x, y) x y,
et qui vrifie :
(x, y) D2, x y D
(x, y, z) D3, x (y z) = (x y ) z
e D / x D on a : e x = x e = x.

ISI
Institut
Suprieur
01/11/2010 Informatique 47
Copyright Ramzi GUETARI

Dfinition de monode

Exemples :
L ensemble N des entiers naturels est muni de deux structures de monodes :
Lensemble
(N, +, 0)

(N, , 1).

Les exemples qui suivent, o L * est un langage sur , ne font que rsumer
quelques proprits dj vues :
(L*, ., ), en particulier (*, ., ),
(P (L*),+, ), en particulier (P (*),+, ),
(P (L*), ., ), en particulier (P (*), ., ).

ISI
Institut
Suprieur
01/11/2010 Informatique 48
Copyright Ramzi GUETARI

24
Morphismes de monodes

Soient (D,, e) et (D, , e) deux monodes. Un morphisme (D, , e) (D, , e)


est une application h : D DD qui vrifie les proprits suivantes :
h (e) = e,
h (x y) = h (x) h (y) quels que soient x D et y D.

Exemple:
Exemple
Lapplication longueur u |u| dfinit un morphisme (*, ., ) (N, +, 0).

ISI
Institut
Suprieur
01/11/2010 Informatique 49
Copyright Ramzi GUETARI

Lemme principal

Lapplication L qui `a chaque ( + V)* associe le langage L() * est un


morphisme de monodes

L : (( + V)*, ., ) (P(*), ., ).

Une des applications du lemme principal est lie aux arbres de drivation. Considrons
lexemple suivant :

S SbS | | a | aa
10
On peut aisment vrifier que S aabbabaabba. Ce qui donne larbre de drivation
de la figure suivante :

ISI
Institut
Suprieur
01/11/2010 Informatique 50
Copyright Ramzi GUETARI

25
Lemme principal
S

S b S

S b S S b S

S b S S b S a

a a a a a

ISI
Institut
Suprieur
01/11/2010 Informatique 51
Copyright Ramzi GUETARI

Lemme principal

Regardons le cas de la drivation D : SbS 10 aabbabaabba dont larborescence est


la figure prcdente :
7
D1 : S aabbabaa
0
D2 : b b
3
D3 : S ba
sont des squentialisations respectives des trois arbres de la figure prcdente. On
peut construire une drivation quivalente D, en composant, par exemple et dans et
ordre :
7
D1 : SbS aabbabaabS
0
D2 : aabbabaabS aabbabaabS
3
D3 : aabbabaabS aabbabaabba
ISI
Institut
Suprieur
01/11/2010 Informatique 52
Copyright Ramzi GUETARI

26
Rgle globale

X est une rgle dune grammaire G quelconque avec :


XV
( + V)*
La dfinition prsente les rgles de faon individuelle. Il est commode de regrouper
les rgles relatives une mme variable.

Rgle globale :
La rgle globale X l(X) : de X dans G est dfinie par
l(X) si et seulement si X est une rgle de G
( + V)*
l(X) est donc lensemble de tous les seconds membres des rgles pour X : cest un langage
fini, puisque R lest par dfinition.
ISI
Institut
Suprieur
01/11/2010 Informatique 53
Copyright Ramzi GUETARI

Les quations associes une grammaire

lensemble des quations X = l(X) pour toute X V est appel le systme dquations
associ G.

Le langage engendr par X sur une grammaire G est le gal au langage engendr par
le systme dquations l(X)

L(X) = L(l(X), X V

Dmonstration

u L(X) X
* u

( + V)* / (X ) R et
* u

l(X) tel que u


*

u L(l(X))
ISI
Institut
Suprieur
01/11/2010 Informatique 54
Copyright Ramzi GUETARI

27
Exemple

S SbS | | a | aa
L(l(S)) = L (SbS | | a | aa)
= L (SbS) + L() + L(a) + L(aa)
= L(S)bL(S) + + a + aa
lgalit L(S) = L(l(S)) signifie donc bien que L(S) = L(S)bL(S) + + a + aa

ISI
Institut
Suprieur
01/11/2010 Informatique 55
Copyright Ramzi GUETARI

Langage tendu

On appelle langage tendu engendr par G partir de ( + V)*, le langage not


L(G,
L (G, ) ( + V)* dfini par :

L(G, ) si et seulement si
*
.

On a videmment L(G, ) = L(G, ) *.

ISI
Institut
Suprieur
01/11/2010 Informatique 56
Copyright Ramzi GUETARI

28
Transformation de grammaires

Rappel : Un langage algbrique L * est un langage engendr par une


grammaire G = (V, S, R) sur un alphabet partir ddune une variable (appele
axiome) S V, cestdire L = L(G, S).
G dfinit un procd de calcul : lapplication des rgles permet de produire chaque
k
mot u L comme rsultat dune drivation S u
Rciproquement, si u *, la question se pose de savoir si u L :
une rponse affirmative ne sera satisfaisante que si elle est accompagne de sa
k
preuve, cestdire, dune drivation S u.
De mme,
mme une rponse ngative ne sera satisfaisante que si llon on prouve que toute
tentative raisonnable de construire une telle drivation choue.
Ces questions, synthse (synthesis
synthesis) et analyse (parsing
parsing) syntaxiques, justifient que
lon sintresse des grammaires de formes particulires : il sagit alors de voir sil
est possible de transformer une grammaire donne en une grammaire de la forme
particulire souhaite, qui soit capable dengendrer le mme langage.
ISI
Institut
Suprieur
01/11/2010 Informatique 57
Copyright Ramzi GUETARI

Grammaires reduites

Soit V V. La restriction de G V est la ggrammaire G


G = ((V,, ,, R)) o R est
lensemble des rgles de G qui peuvent scrire avec des variables de V :
(X ) R si et seulement si (X ) R, X V et ( + V)*

On a : L(G, X) L(G, X) X V, car toute rgle de G est une rgle de G.

Toutes les parties de V que nous serons amens dfinir par la suite sont
construites de la faon suivante :
On dfinit une suite Ui croissante de parties de V : U0 U1 Ui V.

Une telle suite est stationnaire car V est fini : il existe un entier N tel que i N
implique Ui = UN.
U = UN sappelle la limite de la suite Ui.

ISI
Institut
Suprieur
01/11/2010 Informatique 58
Copyright Ramzi GUETARI

29
Grammaires reduites

X V est pproductive si et seulement si L(G,


(G, X))
.
Prod(G) V dsignera lensemble des variables productives de G.

Prod(G) est la limite de la suite dfinie par :


U0 =
Ui+1 = Ui + {X V / (X ) R telle que ( + Ui)*}.

Elimination des variables non productives :


La restriction G
G = (V
(V, ,
RR)) de G V
V = Prod(G) vrifie :
Toutes ses variables sont productives.
L(G, X) = L(G, X) pour toute X V.

ISI
Institut
Suprieur
01/11/2010 Informatique 59
Copyright Ramzi GUETARI

Grammaires rduites

p S V si et seulement si L(G,
X V est accessible depuis (G, S)) [[X]]
o [X] ( + V) est lensemble des tels que ||X > 0.
*

ACCG(S) V dsignera lensemble des variables accessibles partir de S.


0
On a S ACCG(S) grce la drivation triviale S S.
ACCG(S) est la limite de la suite dfinie par :
U0 = S
Ui+1 = Ui + {X V / Y Ui et [X] tels que (Y ) R}.

Partie accessible depuis une variable : Soit S V telle que L(G, S) . La


restriction G = (V, , R) de G V = ACCG(S) vrifie :
Toute X V est accessible partir de S
L(G, X) = L(G, X) X V.
ISI
Institut
Suprieur
01/11/2010 Informatique 60
Copyright Ramzi GUETARI

30
Grammaire rduite

Thorme 1 : Grammaire rduite


Une grammaire hors-contexte G est dite rduite si et seulement si toutes les variables
sont productives et accessibles partir de S.
S V / L(G, S) il existe une grammaire G = (V, , R) telle que :
S V V,
G est rduite pour S,
L(G, X) = L(G, X) pour toute X V.

Il suffit dliminer les variables non productives puis les variables non accessible.
Attention : llimination des variables qui ne sont pas productives peut rendre dautres
variables inaccessibles partir de S, il faut donc effectuer les oprations dlimination
dans cet ordre pour rduire G.

ISI
Institut
Suprieur
01/11/2010 Informatique 61
Copyright Ramzi GUETARI

Grammaires propres

Une ggrammaire G pproduit si et seulement si il existe X V tel qque L(G,


(G, X).
)
Lensemble EPS(G) V des variables produisant est dfini par X EPS(G) si
et seulement si L(G, X).

Il existe une grammaire G = (V, , R) qui ne produit pas et qui vrifie :


L(G, X) = L(G, X) X V.
On ne peut pas se contenter de supprimer les rgles de la forme X . Considrons
par exemple,l lal grammaire
i G dont
d t les
l rgles
l globales
l b l sontt :
S SAS | b
Aa|
Grce la drivation S SAS bAS bS bb on a bb L(G, S), mais il est
1 1 1 1

clair que si lon modifie G en G en liminant la rgle A , alors bb L(G, S) !


ISI
Institut
Suprieur
01/11/2010 Informatique 62
Copyright Ramzi GUETARI

31
Grammaires propres

Considrons
Co s d o s laa subst
substitution
tut o s : +V
V P((
(( + V)*) d
dfiniee pa
par :

s () = { + si EPS(G)
sinon

qui remplace chaque variable X EPS(G) par X + .

Si la rgle globale de X dans G est X l, alors sa rgle globale dans G est :

X s(l) .

ISI
Institut
Suprieur
01/11/2010 Informatique 63
Copyright Ramzi GUETARI

Grammaires propres

Soit G = la ggrammaire dfinie ppar les rgles


g gglobales :
S aAB | BA | b
A BBB | a
B AB | b |

EPS(G) = {S, A, B},


les rgles globales de G scrivent donc :
( (A + )(B
S (a(A )(B + )) | (B + )(A
)(A + )) | b) S aAB | aA | aB | a | BA | A | B | b
A ((B + )(B + )(B + ) | a) A BBB | BB | B | a
B ((A + )(B + ) | b | ) B AB | A | B | b

Aprs dveloppement des seconds membres

ISI
Institut
Suprieur
01/11/2010 Informatique 64
Copyright Ramzi GUETARI

32
Grammaires propres

Unee drivation
k
U d at o est une
u e drivation
d at o X Y o X V, Y V et k > 00.

Thorme 2 : Grammaire propre


Une grammaire hors-contexte G = {Vt, Vn, S, R} est dite propre si elle vrifie :

(1) N u R, u ou N = S
(2) N u R, S u
(3) Les non-terminaux sont tous utiles, cest--dire la fois :
(a) N Vn, N est atteignable depuis S : , V* tels que S
* N.

(b) N Vn, N est productif : w Vt tel que N w.


* *

En dautre termes, une grammaire G est propre si et seulement si elle ne produit pas
et nadmet pas d drivation.
ISI
Institut
Suprieur
01/11/2010 Informatique 65
Copyright Ramzi GUETARI

Grammaires propres

Thorme 2 : Grammaire propre


Une grammaire hors-contexte G = {Vt, Vn, S, R} est dite propre si elle vrifie :

(1) N u R, u ou N = S
(2) N u R, S u
(3) Les non-terminaux sont tous utiles, cest--dire la fois :
(a) N Vn, N est atteignable depuis S : , V* tels que S
* N.

(b) N Vn, N est productif : w Vt tel que N


* * w.

ISI
Institut
Suprieur
01/11/2010 Informatique 66
Copyright Ramzi GUETARI

33
Grammaires propres

Thorme 3
Pour toute grammaire hors-contexte G = {Vt, Vn, S, R}, il existe une grammaire hors-
contexte G = {Vt, Vn Vn {S}, S, R} propre qui engendre le mme langage.

On procde de la manire suivante :


1. On rajoute une rgle S S, S devenant la nouvelle source.
2. limination des M .
Calculer lensemble E = {M Vn / M
* }

POUR tout M E FAIRE


POUR toute rgle N M de R FAIRE
Ajouter la rgle N R
FIN POUR
FIN POUR
ISI
Institut
Enlever les rgles M telles que M Vn Suprieur
Informatique
01/11/2010 67
Copyright Ramzi GUETARI

Grammaires propres

Thorme 3 (suite)
3. limination des rgles M N. On applique la procdure suivante G prive de
la rgle S :
Calculer les paires (M, N) telles que M
* N

POUR chaque paire (M, N) calcule FAIRE


POUR toute rgle N u1 | | un de R FAIRE
Ajouter la rgle M u1 | | un R
FIN POUR
FIN POUR
Enlever les rgles M telles que M Vn

ISI
Institut
Suprieur
01/11/2010 Informatique 68
Copyright Ramzi GUETARI

34
Grammaires propres

Thorme 3 (suite)
4. limination des non terminaux non productifs :
Calculer les non terminaux productifs
Enlever les autres

5. Suppression des non terminaux non atteignables :


Calculer les non terminaux atteignables
Enlever tous les autres

Chaque tape ne remet pas en cause la prcdente, et donc la grammaire obtenue est
propre. Ce ne serait pas le cas si lon inversait les deux dernires tapes.
ISI
Institut
Suprieur
01/11/2010 Informatique 69
Copyright Ramzi GUETARI

Grammaires propres

S aU | bV
U | aU | V
V | bV | U

S a | b | aU | bV
U a | aU | V
V b | bV | U

S a | b | aU | bV
U a | aU | b | bV
V b | bV | a | bV
ISI
Institut
Suprieur
01/11/2010 Informatique 70
Copyright Ramzi GUETARI

35
Forme normale de Chomsky

Thorme 4
Pour tout langage hors-contexte L, il existe une grammaire propre G qui lengendre
dont toutes les rgles sont de lune des trois formes suivantes :
(1) S
(2) P a
(3) P MN (M S et N S)

ISI
Institut
Suprieur
01/11/2010 Informatique 71
Copyright Ramzi GUETARI

Lemme ditration (pumping lemma)

Soit L un langage rgulier reconnu par un automate n tats. Soit z un mot de L de


longueur n. Alors z se factorise en z = uvw, o :
|uv| n,

v
i 0, on a uviw L.

En clair, pour obtenir des mots trs long, un automate ne peut que rpter plusieurs
fois le mme motif.
Tous les langages ne sont pas reconnaissables par les automates.
automates

Ce lemme (pumping lemma) exprime une proprit ncessaire pour quun langage soit
algbrique : cette proprit nest pas suffisante pour cela !

ISI
Institut
Suprieur
01/11/2010 Informatique 72
Copyright Ramzi GUETARI

36