Professional Documents
Culture Documents
Nathalie Bertrand
nathalie.bertrand@inria.fr
Automates et Langages Pr
epa Agreg 2011/2012, 1
Bibliographie
Aut
Jean-Michel Autebert.
Theorie des langages et des automates.
Masson, 1994.
ASU
BBC
Car
Olivier Carton.
Langages formels, calculabilite et complexite.
Vuibert, 2008.
HU
Saka
Jacques Sakarovitch.
ements de theorie des automates.
El
Vuibert informatique, 2003.
Automates et Langages Pr
epa Agreg 2011/2012, 2
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Partie I
Automates finis
Automates et Langages Pr
epa Agreg 2011/2012, 3
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Mots et langages
Automates et Langages Pr
epa Agreg 2011/2012, 4
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Automates finis
Automate fini
A = (Q, , I , F ) o`
u
I
: Q 2Q fonction de transition.
a
1
n
q0
q1 qn1
qn .
Extension de `
a Q :
(q, ) = q and (q, w a) = ((q, w ), a) pour w et a .
Automates et Langages Pr
epa Agreg 2011/2012, 5
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Langages reconnaissables
Langage accepte
L(A) = {w | q0 I , (q0 , w ) F 6= }
Langages reconnaissables
Un langage L est reconnaissable sil existe un automate fini A tel que
L = L(A).
On note Rec( ) la famille des langages reconnaissables sur .
Exemples dautomates.
{an b n | n 0}
{w | |w |a = |w |b }
Automates et Langages Pr
epa Agreg 2011/2012, 6
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Automates deterministes
Automate deterministe
A = (Q, , I , F ) est deterministe si
I
|I | = 1, et
Determinisation
Soit A un automate fini. On peut construire un automate deterministe B reconnaissant le meme langage que A.
Automates et Langages Pr
epa Agreg 2011/2012, 7
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Automates complets/emondes
Probl`eme du vide
Soit A un automate fini. On peut decider si L(A) = .
Automates et Langages Pr
epa Agreg 2011/2012, 8
Langages reconnaissables
Langages rationnels
Minimisation
Applications
1
n
Une execution q0
q1 qn1
qn lit (a1 an ).
Elimination
des -transitions
Pour tout automate avec -transitions, on peut construire un automate sans
-transitions reconnaissant le meme langage.
Automates et Langages Pr
epa Agreg 2011/2012, 9
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Theor`eme
Les probl`emes du vide et du mot sont decidables en NLOGSPACE.
Rq : peu importe que A soit deterministe ou non, avec ou sans -transitions.
Automates et Langages Pr
epa Agreg 2011/2012, 10
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Proprietes de cloture
Operations ensemblistes
[BBC,p.301]
La famille Rec( ) des langages reconnaissables sur est close par les operations
ensemblistes (union, intersection, complement).
Corollaires
I
Concatenation et iteration
[BBC,p.303]
Automates et Langages Pr
epa Agreg 2011/2012, 11
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Pref(L) = {w | w 0 , w w 0 L},
Suff(L) = {w | w 0 , w 0 w L},
Fact(L) = {w | wi , wf , wi w wf L}.
K 1 L = {w | k K , k w L},
L K 1 = {w | k K , w k L}.
Quotient
La famille Rec( ) est close par quotients :
L Rec( ) et K (K 1 L) Rec( ) et (L K 1 ) Rec( ).
Automates et Langages Pr
epa Agreg 2011/2012, 12
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Automates et Langages Pr
epa Agreg 2011/2012, 13
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Substitution
Une substitution est une fonction : 1 P(2 ). setend en un morphisme
: 1 P(2 ) defini par () = {} et (wa) = (w )(a).
Une substitution est rationnelle si elle est definie par : 1 Rec(2 ).
Pour L 1 , (L) = w L (w ).
Pour L 2 , 1 (L) = {w 1 | (w ) L 6= }.
Automates et Langages Pr
epa Agreg 2011/2012, 14
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Lemmes diteration
Lemmes de letoile
[Car,p.53][Saka,p.78]
Automates et Langages Pr
epa Agreg 2011/2012, 15
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Caracterisation
[Saka,p.128][Car,p.54]
Corollaire
satisfont le lemme de letoile par bloc (3.).
L est reconnaissable ssi L et L
Automates et Langages Pr
epa Agreg 2011/2012, 16
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Expressions rationnelles
Expressions rationnelles
Lensemble des expressions rationnelles est defini par :
I
Semantique
Le langage denote par une expression rationnelle est defini inductivement :
I
I
Automates et Langages Pr
epa Agreg 2011/2012, 17
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Langages rationnels
Langage rationnel
L est rationnel sil existe E E tel que L = JE K.
On note Rat( ) la famille des langages rationnels sur .
Equivalence
dexpressions rationnelles
E , F E sont equivalentes, note E F , si JE K = JF K.
Automates et Langages Pr
epa Agreg 2011/2012, 18
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Theor`eme de Kleene
Theor`eme (Kleene)
Rec( ) = Rat( )
Preuve
() Rec( ) contient , {a} (pour a ) et est close par union,
concatenation et etoile.
Construction : algo de Thompson, Glushkov, et Antimirov.
() Construction : algo de McNaughton-Yamada,
Brzozowski-McCluskey, et par resolution dequations.
Corollaire
Lequivalence des expressions rationnelles est decidable.
Automates et Langages Pr
epa Agreg 2011/2012, 19
Langages reconnaissables
Langages rationnels
Minimisation
Applications
m
1
2
q avec p1 , , pm1 {1, , k}}.
L(k)
p1
p,q = {a1 am | p
L(A) =
(n)
Li,f .
iI ,f F
(k)
(P
a+
= P(p,a,q)
(p,a,q) a
si p = q,
sinon.
Induction :
L(k+1)
= L(k)
p,q
p,q + Lp,k+1 (Lk+1,k+1 ) Lk+1,q .
(k)
(k)
(k)
Automates et Langages Pr
epa Agreg 2011/2012, 20
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Automate generalise
Un automate generalise sur est un automate fini sur Rat( ).
Les etiquettes des transitions sont des expressions rationnelles.
Proposition
Si A est un automate generalise sur , alors L(A) Rat( ).
Preuve : construction dun automate generalise equivalent
B = ({q0 , qf }, B , {q0 }, {qf }) o`
u B = {(q0 , L(A), qf )}.
Automates et Langages Pr
epa Agreg 2011/2012, 21
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Lemme (Arden)
[Car,p.40][Saka, p.108]
Soient K , L , avec
/ K . Alors K L est lunique solution de lequation
X = KX + L.
Automates et Langages Pr
epa Agreg 2011/2012, 22
Langages reconnaissables
Langages rationnels
Minimisation
Applications
A({}) et A({a})
Somme : A(E + F )
A(F )
A(E )
Concatenation : A(E F )
Etoile
: A(E )
A(E )
A(F )
A(E )
Automates et Langages Pr
epa Agreg 2011/2012, 23
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Expression lineaire
E Rat( ) est lineaire si chaque symbole de apparat au plus une fois.
Automate local
A = (Q, , {i}, F ) deterministe est local si pour tout a , |{q Q | p
Q, (p, a, q) }| 1.
Proposition
Pour toute expression lineaire E sur , on peut construire un automate local A
tel que L(A) = JE K.
Automates et Langages Pr
epa Agreg 2011/2012, 24
Langages reconnaissables
Langages rationnels
Minimisation
Applications
[Saka, p.159]
Derivee partielle
Soient E Rat() et a . La derivee partielle a (E ) de E par rapport `
a a est
lensemble des expressions rationnelles defini inductivement par :
I a () =
I a (a) = {} et a (b) = pour b 6= a
I a (E + F ) = a (E ) a (F )
I a (E ) = a (E ) E
(
a (E ) F
si
/ JE K
I a (E F ) =
a (E ) F a (F ) sinon.
Extension `
a des mots de : (E ) = {E }
wa (E ) = a (w (E )).
Proprietes
Lautomate des derivees est un automate fini et satisfait : L(A) = JE K.
Automates et Langages Pr
epa Agreg 2011/2012, 25
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Residuel
Le residuel de L par u est le quotient u 1 L = {v | uv L}.
QL = {u 1 L | u },
L (u 1 L, a) = a1 (u 1 L) = (ua)1 L,
iL = L = 1 L,
FL = {u 1 L | u 1 L} = {u 1 L | u L}.
Proposition
[BBC, p.312]
Automates et Langages Pr
epa Agreg 2011/2012, 26
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Morphismes dautomates
Morphisme dautomates
Soient A1 = (Q1 , 1 , I1 , F1 ) et A2 = (Q2 , 2 , I2 , F2 ) deux automates sur . Un
morphisme : A1 A2 est une application de Q1 dans Q2 telle que :
I
(I1 ) I2 ,
(F1 ) F2 ,
p, q Q1
Proposition
Soient A1 = (Q1 , 1 , {i1 }, F1 ) et A2 = (Q2 , 2 , {i2 }, F2 ) deux automates
deterministes complets. Si : A1 A2 est un morphisme dautomates surjectif
(i.e. 1 (F2 ) F1 et (Q1 ) = Q2 ), alors L(A1 ) = L(A2 ).
Proposition
[Saka, p.122]
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Automate minimal
Quotient dautomates
Soient A1 et A2 deux automates deterministes complets. On dit que A2 est un
quotient de A1 , note A2 A1 , sil existe un morphisme surjectif : A1 A2 .
est un ordre partiel sur les automates deterministes complets.
Automates et Langages Pr
epa Agreg 2011/2012, 28
Langages reconnaissables
Langages rationnels
Minimisation
Applications
[Saka, p.125]
Proposition
Soit L Rec( ). Le determinise dun automate co-deterministe co-accessible
qui reconnat L est minimal.
Algorithme de Brzozowski
R(L(A)) = det(tr(det(tr(A)))).
Automates et Langages Pr
epa Agreg 2011/2012, 29
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Congruence
Congruence
Soit A = (Q, , {i}, F ) un automate deterministe. Une relation dequivalence
sur Q est une congruence si :
I
elle sature F
p, q
p q a , (p, a) (q, a)
p, q
p q p F ssi q F
Automate quotient
Soit A = (Q, , {i}, F ) un automate deterministe et une relation dequivalence
sur Q. Le quotient de A par est lautomate
A/ = (Q/ , , {[i]}, {[f ] | f F })
o`
u ([p], a) = [(p, a)].
Proposition
[Car, p. 47]
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Congruence de Nerode
Congruence de Nerode
Soit A = (Q, , {i}, F ). Lequivalence sur Q definie par
pq
ssi
Lp = Lq
ssi
w , (p, w ) F (q, w ) F
Consequences
Soit L Rec( ).
I
Automates et Langages Pr
epa Agreg 2011/2012, 31
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Algorithme de Moore
Principe : Calcul de la congruence de Nerode, par raffinements successifs.
Soit A = (Q, , {i}, F ) un automate deterministe.
On definit la congruence i sur Q par :
p 0 q
ssi
(p F q F )
p i+1 q
ssi
p i q et a , (p, a) i (q, a)
Proposition
p i q ssi Lp i = Lq i
Si i+1 = i alors i =
= |Q|2 .
Langages reconnaissables
Langages rationnels
Minimisation
Recherche de motif
Applications
[Saka, p.163]
Entree : w = w1 wm et t = t1 tn
Algorithme naf
i:=1 ; j:=1 ;
tant que i m et j n faire
bla si t[j] = w[i] alors i:=i+1 ; j:=j+1
bla sinon j:=j-i+2 ; i:=1
si i > m alors
bla retourner occurrence `
a la position j-m
sinon
bla retourner pas doccurrence
Automates et Langages Pr
epa Agreg 2011/2012, 33
Langages reconnaissables
Langages rationnels
Minimisation
Applications
(i) = |bord(w1 wi )|
[BBC, p.340]
i:=1 ; j:=1 ;
tant que i m et j n faire
bla si i 1 et t[j] 6= w[i] alors i:=1 + (i-1)
bla sinon i:=i+1 ; j:=j+1
si i > m alors
bla retourner occurrence `
a la position j-m
sinon
bla retourner pas doccurrence
Automates et Langages Pr
epa Agreg 2011/2012, 34
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Proposition
Lautomate du motif w est lautomate minimal de w : Aw = R( w ).
Automates et Langages Pr
epa Agreg 2011/2012, 35
Langages reconnaissables
Langages rationnels
Minimisation
Analyse lexicale
Applications
[HU, p.45]
Eint = int
E+ = +
E; = ;
Deux principes :
I
Langages reconnaissables
Langages rationnels
Minimisation
Applications
P
Principe : simuler un automate deterministe pour le langage L( i Ei ).
A = (Q, , {q0 }, F ) ; f : F {E1 , , Ep } ; w = a1 an
Automates et Langages Pr
epa Agreg 2011/2012, 37
Langages reconnaissables
Langages rationnels
Minimisation
Applications
si (q, ai ) = et q
/F
si (q, ai ) = et q F
si (q, ai ) = q 0 , T (q 0 , i + 1) = (, 0) et q F
sinon.
(
(, 0)
si q
/F
T (q, n + 1) =
(q, n + 1) sinon.
Analyse lexicale
i:=1 ;
tant que i n faire
bla (qf ,i):=T(q0 ,i);
bla si qf = alors
blabla retourner
echec;
bla afficher f (qf ) ;
retourner succ`
es;
Automates et Langages Pr
epa Agreg 2011/2012, 38
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Arithmetique de Presburger
Arithmetique de Presburger
Soit un ensemble infini de variables {x, y , z, }. Larithmetique de Presburger
est lensemble des formules logiques engendrees par la grammaire suivante :
::= x = 0 | x = y + z | 1 2 | 1 2 | | x | x
Exemples : x y z x = y + z
y x = y + y
z (x = y + z) z = 0
Theor`eme
[Car, p.164]
Langages reconnaissables
Langages rationnels
Minimisation
Applications
Classification
Probl`eme de separation par automate.
Etant
donnes S, T finis, et k N, existe-t-il un automate deterministe A
`
a k etats tel que S L(A) et T L(A) = ?
Theor`eme
[FB, Ch.9]
Automates et Langages Pr
epa Agreg 2011/2012, 40
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Partie II
Automates `a pile
Automates et Langages Pr
epa Agreg 2011/2012, 41
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Grammaires algebriques
Grammaire algebrique
G = (V , T , P, S) o`
u
I
S V variable initiale,
Automates et Langages Pr
epa Agreg 2011/2012, 42
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Derivations
Derivation
Soit G = (V , T , P, S) une grammaire algebrique et soient , (V T ) .
se derive en , note sil existe u, v (V T ) et X V tels que:
= uXv ,
= uv ,
(X , ) P.
Lemme fondamental
Soit G = (V , T , P, S) une grammaire algebrique, k N et 1 , 2 , (V T ) .
Si 1 2 k , alors il existe 1 , 2 et k1 , k2 tels que i ki i , = 1 + 2 et
k = k1 + k2 .
Automates et Langages Pr
epa Agreg 2011/2012, 43
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Langage algebrique
Langage engendre
Le langage engendre par une grammaire algebrique G est defini par :
LG = LG (S) = {w T | S w }.
Langage de Dyck Dn : Le langage des mots bien parentheses sur n paires de
parenth`eses est engendre par la grammaire ayant pour r`egles de production
S ai Sai S, pour 1 i n et S .
G1 et G2 sont dites equivalentes si elles engendrent le meme langage.
Langage algebrique
Un langage L T est algebrique sil existe une grammaire algebrique G =
(V , T , P, S) qui lengendre, c.-`
a-d. L = LG (S).
Automates et Langages Pr
epa Agreg 2011/2012, 44
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Grammaire lineaire
Une grammaire algebrique G = (V , T , P, S) est lineaire si pour toute r`egle de
production (X , ) P, T VT T .
Elle est lineaire droite (resp. gauche) si T V T (resp. VT T ).
Un langage est lineaire sil existe une grammaire lineaire qui lengendre.
{an b n | n 0} est lineaire.
Automates et Langages Pr
epa Agreg 2011/2012, 45
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Arbres de derivation
Arbre de derivation
Soit G = (V , T , P, S) une grammaire algebrique. Un arbre de derivation est un
arbre fini etiquete par T V {} tel que:
I
Automates et Langages Pr
epa Agreg 2011/2012, 46
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Ambigute
Ambigute
I
Proposition
[Aut, p.96]
Tout langage rationnel peut etre engendre par une grammaire lineaire droite
non-ambigue.
Automates et Langages Pr
epa Agreg 2011/2012, 47
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Lemmes diteration
Lemme dOgden
[Car, p.92]
Y X , X uXv , X ,
Automates et Langages Pr
epa Agreg 2011/2012, 48
Langages alg
ebriques
Applications
Automates `
a pile
Analyse syntaxique
Automates et Langages Pr
epa Agreg 2011/2012, 49
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Grammaires reduites
Grammaire reduite
Une grammaire algebrique G = (V , T , P, S) est reduite si toute variable X V
est
I
productive : LG (X ) 6= (w T LG (X )), et
accessible : S X avec , (T V ) .
Proposition
Pour toute grammaire algebrique on peut construire une grammaire algebrique
reduite equivalente.
Automates et Langages Pr
epa Agreg 2011/2012, 50
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Grammaires propres
Grammaire propre
Une grammaire algebrique G = (V , T , P, S) est propre si elle ne contient pas de
r`egle de la forme X ou X Y pour X , Y V .
Proposition
Pour toute grammaire algebrique G on peut construire une grammaire algebrique
propre qui engendre LG \ {}.
Corollaire
Le probl`eme du mot est decidable pour les grammaires algebriques.
Automates et Langages Pr
epa Agreg 2011/2012, 51
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Proposition
Pour toute grammaire algebrique on peut construire une grammaire algebrique
sous forme normale de Chomsky equivalente.
Automates et Langages Pr
epa Agreg 2011/2012, 52
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Greibach (FNG) si P V TV ,
Theor`eme
Preuve
Automates et Langages Pr
epa Agreg 2011/2012, 53
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Proprietes de cloture
Operations rationnelles
Les langages algebriques sont clos par union, concatenation et etoile.
Substitution algebrique
Une substitution : 1 P(2 ) est algebrique si (a) est un langage
algebrique, pour tout a 1 .
Substitution algebrique
Les langages algebriques sont clos par substitution algebrique.
Morphisme inverse
Les langages algebriques sont clos par morphisme inverse.
Automates et Langages Pr
epa Agreg 2011/2012, 54
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Langages de Dyck
On appelle langage de Dyck sur n paires de parenth`eses le langage Dn sur n =
u
{a1 , , an } {a1 , , an } engendre par la grammaire Gn = ({S}, n , Pn , S) o`
Pn est reduit `
a S a1 Sa1 S + + an San S + .
Automates et Langages Pr
epa Agreg 2011/2012, 55
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Probl`emes de decision
Probl`emes decidables
G = (V , T , P, S) grammaire algebrique
I
LG contient w T ?
Probl`emes indecidables
L, L0 langages algebriques, R langage rationnel
I
L L0 = ?
L = T ?
L = L0 ?
L rationnel ?
L ambigu ?
T \ L algebrique ?
L L0 algebrique ?
L L0 ?
RL?
Automates et Langages Pr
epa Agreg 2011/2012, 56
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
[Car, p.184]
On peut decider en temps cubique si un mot est engendre par une grammaire
en forme normale de Chomsky.
Principe : Pour w = a1 an , calcul recursif des Ei,j = {X | ai aj LG (X )}.
I
I
X Ei,i ssi (X , ai ) P
X Ei,j ssi (X , YZ ) P et k tq Y Ei,k et Z Ek+1,j
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Equations
algebriques
Proposition
I
Automates et Langages Pr
epa Agreg 2011/2012, 58
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Theor`eme de Parikh
Image commutative
Limage commutative dun langage L T est L = {w | w L}, o`
u w denote
lensemble des anagrammes de w .
Deux langages L et L0 sont commutativement equivalents si L = L0 .
Theor`eme (Parikh)
[Car, p.86]
Automates et Langages Pr
epa Agreg 2011/2012, 59
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Automates `a pile
Automate `a pile
A = (Q, , , , q0 , 0 , F ) o`
u
I
alphabet dentree,
alphabet de pile,
Langage accepte
w
L(A) = {w | (q0 , 0 )
(qf , h) avec qf F }
Automates et Langages Pr
epa Agreg 2011/2012, 60
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
I Etat
(q, h) avec q F }
final L = {w | (q0 , 0 )
w
Equivalence
des modes dacceptation
[Car, p.106]
Automates et Langages Pr
epa Agreg 2011/2012, 61
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Equivalence
grammaires algebriques / automates `a pile
[Car, p.108]
Preuve
Corollaire
I
Tout automate `
a pile est equivalent `
a un automate `
a pile `
a un seul etat.
Tout automate `
a pile est equivalent `
a un automate `
a pile sans -transition.
Automates et Langages Pr
epa Agreg 2011/2012, 62
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Automates `a pic
[Car, p.110]
Automate `a pic
Un automate `
a pile A = (Q, , , , q0 , 0 , F ) est dit `
a pic si pour toute execution
a1
an
(q0 , h0 ) (q1 , h1 ) (qn , hn ) il existe k < n tel que pour tout 0 i < n
I
i k = |hi | |hi+1 |.
Equivalence
grammaires lineaires / automates `a pic
Un langage L est lineaire si et seulement si il existe un automate `
a pic qui
laccepte.
Automates et Langages Pr
epa Agreg 2011/2012, 63
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Langage de pile
Langage de pile
Le langage de pile dun automate `
a pile A = (Q, , , , q0 , 0 , F ) est defini par :
w
H = {h | w q Q t.q. (q0 , 0 )
(q, h)}.
Theor`eme
[Car, p.117]
Automates et Langages Pr
epa Agreg 2011/2012, 64
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Automates et Langages Pr
epa Agreg 2011/2012, 65
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Complementation
Etant
donne un automate `
a pile deterministe A = (Q, , , , q0 , 0 , F ) on peut
construire un automate `
a pile deterministe qui accepte \ L(A).
Difficultes pour la complementation :
I
A peut bloquer pendant la lecture de lentree, soit par pile vide, ou parce
que A nest pas complet.
Proposition
Automates et Langages Pr
epa Agreg 2011/2012, 66
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
[Aut, p.132]
Lemme diteration
Soit L un langage deterministe. Il existe K N tel que tout w L ayant
au moins K lettres distinguees se factorise en w = uv avec
I
pour tout 0 , n u n v n 0 L n u n v n 0 L,
{an b n | n > 0} {an b 2n | n > 0} est non ambigu mais pas deterministe
Automates et Langages Pr
epa Agreg 2011/2012, 67
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Probl`emes de decision
Probl`emes decidables
[HU, p.246]
L = R ? R L ? L rationnel ?
L = L0 ?
Probl`emes indecidables
[HU, p.247]
L langage algebrique
I
L deterministe ?
L, L0 langages deterministes
I
L L0 = ?
L L0 ?
L L0 algebrique ?
L L0 deterministe ? L L0 deterministe ?
Automates et Langages Pr
epa Agreg 2011/2012, 68
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Analyse syntaxique
Automates et Langages Pr
epa Agreg 2011/2012, 69
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Analyse descendante
Contruction dun arbre danalyse de haut en bas (de la racine vers les feuilles).
Automate expand/check
Soit G = (V , T , P, S) une grammaire. Lautomate expand/check de G est
lautomate `
a pile `
a un etat, dalphabet de pile = V T , de transitions
I
expand : {(X , , ) | (X , ) P}
check : {(a, a, ) | a T }
Automates et Langages Pr
epa Agreg 2011/2012, 70
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Premier
Fonction Premier
(
a
si w = aw 0
sinon.
Soit w T . Premier(w ) =
a T , i 0, Fi (a) = {a},
X V , F0S
(X ) = et
Fi+1 (X ) = (X ,1 n )P Premier(Fi (1 ) Fi (n ))
Automates et Langages Pr
epa Agreg 2011/2012, 71
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Suivant
Fonction Suivant
Soit G = (V , T S
, P, S) une grammaire algebrique et X V .
Suivant(X ) = {Premier() | S X }.
Calcul iteratif de Suivant. Pour X V et i 0 on pose :
I
I
F0 (S) = {} et F0 (X ) = si X 6= S
S
Fi+1 (X ) = Fi (X ) (Y ,X )P Premier(Fi (Y )).
Automates et Langages Pr
epa Agreg 2011/2012, 72
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Grammaire LL(1)
Grammaire LL(1)
Une grammaire algebrique G = (V , T , P, S) est LL(1) si pour toute derivation
S X , pour toutes r`egles X et X avec 6= on a
Premier() Premier() = .
Exemple: la grammaire classique pour le langage de Dyck Dn est LL(1)
Proposition
I
Caracterisation
[ASU, p.219]
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Analyseur LL(1)
Construction de la table danalyse predictive
Pour chaque X
bla pour chaque a Premier()
bla bla mettre X dans la case [X , a]
bla si Premier()
bla bla pour chaque b Suivant(X )
bla bla bla mettre X dans la case [X , b]
Analyseur LL(1)
Lanalyseur LL(1) de G grammaire LL(1) est lautomate `
a pile expand/check qui
regarde une lettre `
a lavance pour savoir quelle r`egle dexpansion appliquer.
Proposition
I
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Generalisation LL(k)
Fortement LL(k)
Une grammaire G = (V , T , P, S) est fortement LL(k) si pour toutes r`egles
X et X avec 6= on a :
Premierk (Suivantk (X )) Premierk (Suivantk (X )) = .
Analyseur LL(k)
Lanalyseur LL(k) de G grammaire fortement LL(k) est lautomate `
a pile expand/check qui regarde k lettres `
a lavance pour savoir quelle r`egle dexpansion
appliquer.
Proposition
I
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Analyse ascendante
Contruction dun arbre danalyse de bas en haut (des feuilles vers la racine).
Automate shift/reduce
Soit G = (V , T , P, S) une grammaire. Lautomate shift/reduce de G est
lautomate `
a pile `
a un etat, generalise, dalphabet de pile = V T , de transitions
I
shift : {(, a, a) | a T }
reduce : {(,
, X ) | (X , ) P}
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Grammaires LR(0)
Conflits
I
X
S
I
et
a
S.
X
S
et
Y
S,
avec = .
Grammaire LR(0)
Une grammaire est LR(0) si sa grammaire augmentee na aucun conflit.
Automates et Langages Pr
epa Agreg 2011/2012, 77
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
q0 = (S 0 , S)
F = {(X , ) | (X , ) P}
contient les transitions suivantes
I
I
I
(X , Y ) (X , Y )
a
(X , a)
(X , a )
(Y , ) pour (Y , ) P
(X , Y )
Automates et Langages Pr
epa Agreg 2011/2012, 78
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
Analyseur LR(0)
(Q, , {q0 }, F ) automate des items et ({0, n}, , {0}, F 0 ) son determinise.
Analyseur LR(0)
Lanalyseur LR(0) de G grammaire LR(0) est lautomate `
a pile shift/reduce dont
les choix shift/reduce et reduce/reduce sont guides par la table des actions.
Proposition
I