.
Inf 431 – Cours 15
Grammaires formelles
jeanjacqueslevy.net
secr´etariat de l’enseignement:
Catherine Bensoussan cb@lix.polytechnique.fr
Aile 00, LIX, 01 69 33 34 67
www.enseignement.polytechnique.fr/informatique/IF
.
Plan
1. La classification de Chomsky
2. Langages r´eguliers et expressions r´eguli`eres
3. R`egles avec parties droites vides dans les grammaires alg´ebriques 4. Forme normale de Chomsky
5. Propri´et´es de fermeture 6. Non expressivit´e
7. Langages r´ecursivement ´enum´erables
Bibliographie
John E. Hopcroft , Rajeev Motwani , Jeffrey D. Ullman,Introduction to Automata Theory, Languages, and Computation (2nd Edition), Addison-Wesley, 2000.
Dexter C. Kozen,Automata and Computability, Springer, 1999.
.
Langage r´ egulier (rationnel)
• Nombre impair deaet nombre impair deb A→aB
A→bC
B→aA B→bD B→b
C→aD C→bA C→a
D→aC D→bB
Exemple de d´erivation :
A→aB→aaA→aabC→aabaD→aabaaC→aabaaa
C
a a
b
b
b
b B a a
D A
.
Langage alg´ ebrique (context-free)
• langage{anbn|n >0}
S→aSb S→ab
Exemple de d´erivation : S→aSb→aaSbb→aaaSbbb→aaaabbbb
• syst`eme de parenth`eses
S→aSbS S→abS S→aSb S→ab Exemple de d´erivation :
S→aSbS→aaSbbS→aaabbbS→aaabbbaSb→aaabbbaabb
• automates `a pile[Chomsky, Schutzenberger]
On rajoute unepileau fonctionnement d’unautomate fini Par exemple pour{anbn|n >0}. Table de transitions (q1 ´etat initial,Z dans la pile,F ={q4})
a, Z a, X b, X ², Z
q1 (q2, ZX)
q2 (q2, XX) (q3, ²)
q3 (q3, ²) (q4, Z)
q4
.
Langage context-sensitive
• langage {anbncn|n >0}
S→² S→A
A→aABC CB→BC aB→ab bC→bc
A→aBC bB→bb cC→cc
Exemple de d´erivation :
S→A→aABC→aaABCBC→aaaBCBCBC
→aaaBBCCBC→aaaBBCBCC→aaaBBBCCC
→aaabBBCCC→aaabbBCCC→aaabbbCCC
→aaabbbcCC→aaabbbccC→aaabbbccc
Le contexte intervient ; les d´erivations ne font pas d´ecroitre la taille des mots.
Exercice 1
Donner une grammaire pour les langages suivants :•{anbncndn|n >0} •{an2|n≥0}
•{uu|u∈Σ∗} •{anbncp|n≥0, p≥0} ∪ {anbpcp|n≥0, p≥0}
.
Langages et Grammaires
Un langageLest un ensemble de mots sur l’alphabet Σ(L⊂Σ∗).
Unegrammaire est un 4-upletG= (Σ, VN, S,P)
• Σalphabet des symboles terminaux
• VN ensemble de non terminaux,V = Σ∪VN
• S∈VN axiome
• P ensemblefini de r`egles de productions de la formeαi→βi
(αi∈V+−Σ∗, βi∈V∗)
.
Classification de Chomsky
type productions cat´egorie
0 α→β α→²
1 α→β |α| ≤ |β| context sensitive
2 A→β context-free
3 A→aB A→a r´egulier o`uα∈V+−Σ∗,β∈V+et A, B∈VN,a∈Σ.
Uneexceptionest possible pour l’axiomeS :
• il peut figurer dans une r`egleS→²
• alors il ne doit pas apparaˆıtre dans une partie droite de production.
.
Langage g´ en´ er´ e par une grammaire
• Uned´erivation ´el´ementaireuαv−→uβvs’obtient par application d’une r`egle α→β de production.
• Uned´erivation u−→∗ v est une suite de d´erivations ´el´ementaires u=u0−→u1−→u2. . . un=v (n≥0)
• Lelangage g´en´er´epar une grammaireG= (Σ, VN, S,P)est : L(G) ={u|S−→∗ u∈Σ∗}
• Un langage est de typeis’il existe une grammaire de typei qui le g´en`ere (0≤i≤3). SoitLi les langages de typei surΣ.
• CommeGde typei+ 1impliqueGde type i, on a
L3⊂ L2⊂ L1⊂ L0
.
• {anbn|n≥0} ∈ L2− L3
• {anbncn|n≥0} ∈ L1− L2
.
Notations abr´ eg´ ees
• Souvent onfactorise les productions qui ont unemˆeme partie gauche grˆace au (m´eta)symbole|(barre verticale) :
α→β1|β2|. . . βn
pour
α→β1 α→β2 . . . α→βn
• Une autre notation fr´equente est proche de laBNF (Backus Naur Form), la fl`eche est remplac´e par “::=” :
α::=β1|β2|. . . βn
• Par exemple, l’espace des termestest d´efini par t::=t+t|t∗t|t−t|t/t|nb
qui ressemble `a une d´efinition r´ecursive. Parfois on duplique les symboles non terminaux pour distinguer les occurences dans les parties droites :
t, t0::=t+t0|t∗t0|t−t0|t/t0|nb
.
Langage r´ egulier et automate fini
Th´ eor` eme 1
Un langage est r´egulier si et seulement s’il est g´en´er´e par un automate fini.• D´emonstration : SiGest la grammaire (de type 3) g´en´erantL, on consid`ere l’automate non-d´eterministeA= (Σ, VN, S,{qf}, δ)tel que B∈δ(A, a)si A→aB
qf∈δ(A, a)si A→a AlorsT(A) =L(G).
• R´eciproquement, siL=T(A)et A= (Σ, Q, q0, F, δ), on consid`ere la grammaire G= (Σ, Q, q0,P) telle que
A→aBsi B∈δ(A, a) A→asiδ(A, a)∩F 6=∅ AlorsL(G) =T(A). ¤
.
Expression r´ eguli` ere et automate
(1/5)• On admet l’´equivalence entre automates finis avec ou sans
²-transitions ;
• on suppose que les automates finis n’ont qu’un seul ´etat de fin qf
avecδ(qf, a) =∅pour touta∈Σ;
• de mˆeme, on supposeq06∈δ(q, a)pour toutq∈Q et a∈Σ;
q0 A qf
• alors les automates finis reconnaissent les expressions r´eguli`eres par les constructions suivantes.
.
Expression r´ eguli` ere et automate
(2/5)a A B
A
²
²
² ²
A
B
• [construction due `a [Thompson](l’inventeur du syst`eme Unix)]
.
Expression r´ eguli` ere et automate
(3/5)Th´ eor` eme 2
[Kleene]Un langage est r´egulier si et seulement s’il est d´ecrit par une expression r´eguli`ere.• D´emonstration : Par la construction pr´ec´edente, on montre par r´ecurrence sur la taille de l’expression r´eguli`ere que toute expression r´eguli`ere est reconnue par un automate.
• R´eciproquement, soitA= (Σ, Q, q0, F)avecQ={q0, q1, . . . qn−1}.
Soit Lki,j l’ensemble des mots permettant d’aller deqi `aqj en passant par des ´etatsq` v´erifiant` < k. Alors
L0i,i={²} ∪ {a|δ(qi, a) =qi} L0i,j={a|δ(qi, a) =qj} Lk+1i,j =Lki,j∪Lki,k(Lkk,k)∗Lkk,j Et L=T(A) =S
qi∈FLn0,i. ¤
.
Expression r´ eguli` ere et automate
(4/5)Pour(a+b)∗ab, l’automate est :
a b
a
b
²
²
² ²
En supprimant les²-transitions et en d´eterminisant, on obtient :
0 1 a
2 b
3 a
b a, b
a
0 a
12 b
13
b 1 a b
a
b a
.
Expression r´ eguli` ere et automate
(5/5)• L’automate obtenu par la construction pr´ec´edente est non-d´eterministe, il a beaucoup de²-transitions.
• On peut toujours d´eterminiser l’automate obtenu, et consid´erer l’automate minimal.
• Il existe des constructions plus directes pour obtenir de bons automates (peut-ˆetre pas minimaux)[Glushkov ; Brzozowski ; Berry-Sethi ; Berstel-Pin]en consid´erant les expressions r´eguli`eres lin´eaires, et les expressions r´eguli`eres d´eriv´ees.
Mot vide dans une grammaire alg´
.ebrique
• Les productionsA→α doivent avoir une partie droitenon vide (α6=²) `a l’exception de l’axiome.
• Or, dans le cours 6, on avait par exemple autoris´e S→aSbS S→².
• Mais les deux d´efinitions de grammaires alg´ebriques g´en`erent les mˆemes langagesalg´ebriques.
En effet, si on aB−→∗ ²et une r`egleA→αBβ, on ajoute la r`egle A→αβ. Puis on supprime toutes les productions C→².
Si on avaitS−→∗ ², on consid`ere un nouvel axiomeS0 et on ajoute les nouvelles r`eglesS0→²et S0→S.
• Sur l’exemple pr´ec´edent, cela donne successivement S→aSbS S→² S→abS S→aSb S→ab
S0→² S0→S S→aSbS S→abS S→aSb S→ab
Exercice 2
Supprimer les parties droites vides dans ces deux grammaires vues au cours 6S→² S→SS S→aSb A→² A→[A nb A]
.
Forme normale de Chomsky
Toute grammaire alg´ebrique a une grammaire ´equivalente dont les r`egles sont de la formeA→a, A→BC (a∈Σ), `a l’exception de l’axiome qui peut avoir une r`egleS→².
D´emonstration :
• On trouve les non-terminales Bet C telles queB−→∗ C.
• Si on a A→αBβ avecC→γ et|γ| ≥2, on ajoute A→αγβ.
• Puis on supprime les r`eglesA→B.
• A pr´esent, les r`egles sont de la formeS→²,A→a,A→α avec
|α| ≥2.
Pour chaque production A→α=X1X2. . . Xn, on ajoute de nouvellesnon-terminalesYi et on pose
• Yi→Xi quandXi∈Σ
• A→X1Y2 Y2→X2Y3 . . . Yn−1→Xn−1Xn.
Exercice 3
Mettre en forme normale de Chomsky les grammaires de l’exercice pr´ec´edent.La forme normale de Chomsky a une application : l’algorithme CYK pour analyser toute grammaire context-free en tempsO(n3)
.
Propri´ et´ es de clˆ otures (1/2)
• Unmorphisme φest toute fonction deΣdansΣ∗1´etendue sur les mots et sur les langages de mani`ere naturelle :
φ(uv) =φ(u)φ(v) et φ(L) ={φ(w)|w∈L}
• Les langages r´eguliers sont clospar morphisme.
• Les langages alg´ebriques sontclospar morphisme.
• Les langagesr´eguliers forment unealg`ebre de Boole(clos par union, intersection et compl´ement).
• Les langagesalg´ebriquessont clos parunion; ils ne sont pas clos par intersection puisque : {anbncn|n≥0}={anbnc∗|n≥0} ∩ {a∗bncn|n≥0}
.
Propri´ et´ es de clˆ otures (2/2)
• Les langages alg´ebriques sont clos parintersection avec un r´egulier: Lalg´ebrique,Rr´egulier ⇒L∩Ralg´ebrique
• D´emonstration :
• G= (Σ, VN, S,P)g´en`ereL; A= (Σ, Q, q0, F) reconnaitR;
• la grammaireG0 suivante g´en`ereL∩R: G0= (Σ, V, S0,P0)
V ={Aq,q0|A∈VN o`uq, q0∈Q} ∪ {S0} P0 contient les r`egles productions suivantes :
• Aq0 0,q0
n→A1
q00,q01A2
q01,q02· · ·An
qn0−1,qn0
siA→A1A2· · ·An est une production deP avec : Ai∈VN∪Σet δ(qi−0 1, Ai) =qi0 si Ai∈Σ
• S0→Sq0,q avecq∈F
.
Non expressivit´ e
• Lemme de l’´etoile
SiLest r´egulier, il existen tel que :
∀w∈L |w|> n ⇒ w=uvxavec|v|>0etuvnx∈Lpour tout n≥0.
Exercice 4
Montrer que{anbn|n≥0}n’est pas r´egulierExercice 5
Montrer que{anban|n≥0}n’est pas r´egulier• Lemme de la pompe
SiLest alg´ebrique, il existe ntel que :
∀w∈L |w|> n ⇒ w=uvxyz avec|vy|>0et uvnxynz∈Lpour toutn≥0.
Exercice 6
Montrer que{anbncn|n≥0}n’est pas alg´ebrique..
Langage r´ ecursivement ´ enum´ erable
Th´ eor` eme 3
Un langage est de type 0 (dans la classification de Chomsky) ss’il est r´ecursivement ´enum´erable.• D´emonstration : D’abord si un langage est de type 0, on peut construire une machine de Turing qui le g´en`ere.
• R´eciproquement, supposons qu’un langageLv´erifieL=T(M)avec M= (Q,Σ,Γ, δ, q0, B, F)est une machine de Turing. On construit la grammaire G= (Σ∪ {$}, Q∪Γ∪ {S, S0}, S,P)avec comme
productions :
qX→Y psi (u, q, Xv)−→(uY, p, v) q$→Y p$si(u, q, ²)−→(uY, p, ²) ZqX→pZY si(uZ, q, Xv)−→(u, p, ZY) Zq$→pZY$si (uZ, q, ²)−→(u, p, ZY) S→q0S0
S0→aS0 S0→$
Alorsu$∈L(G)ssi u∈T(M). ¤
.
Quelques exercices
Exercice 7
Montrer qu’il existe un algorithme pour reconnaˆıtre un langage contexte-sensitif, c’est-`a-dire r´epondant oui si le mot d’entr´ee est dans le langage, et non s’il n’appartient pas.Exercice 8
Montrer qu’il n’existe qu’un semi-algorithme pour reconnaˆıtre un langage r´ecursivement ´enum´erable, c’est-`a-direr´epondant oui si et seulement si le mot d’entr´ee est dans le langage. Le programme peut ne pas fournir de r´eponse si le mot n’est pas dans le langage.
Exercice 9
Montrer qu’il existe une analyse descendante fonctionnant pour tout langage alg´ebrique, mais avec retours en arri`ere(backtracking) dans le mot d’entr´ee. Complexit´e ?