You are on page 1of 79

Automates et Langages

Nathalie Bertrand
nathalie.bertrand@inria.fr

Prepa agreg 2011/2012

Automates et Langages Pr
epa Agreg 2011/2012, 1

Bibliographie
Aut

Jean-Michel Autebert.
Theorie des langages et des automates.
Masson, 1994.

ASU

Alfred Aho, Ravi Sethi et Jeffrey Ullman.


Compilers: principles, techniques and tools.
Addison-Wesley, 1986.

BBC

Jean Berstel, Dani`ele Beauquier et Philippe Chretienne.


ements dalgorithmique.
El
Masson, 1992.

Car

Olivier Carton.
Langages formels, calculabilite et complexite.
Vuibert, 2008.

HU

John E. Hopcroft et Jeffrey D. Ullman.


Introduction to automata theory, languages and computation.
Addison-Wesley, 1979.

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

Alphabet : ensemble fini de symboles (lettres).


Mot sur lalphabet = suite (finie) de lettres : w = a1 an .
On note le mot vide.
w w 0 est la concatenation de w et w 0 mots sur .
Lensemble des mots sur , muni de , est un monode, note .
Un langage est une partie de : L .

Operations booleennes sur 2 : union, intersection, complementaire.


Concatenation : S
L L0 = {w w 0 | w L, w 0 L0 }.
Iteration : L = n0 Ln o`
u L0 = {}, et Li+1 = Li L.

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 ensemble fini detats,

I Q ensemble detats initiaux,

F Q ensemble detats finaux,

: Q 2Q fonction de transition.
a

Pour q 0 (q, a), on note q


q0 .
Execution de A sur un mot w = a1 an :
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.

Il existe des langages non reconnaissables (argument de cardinalite).


Quelques exemples :
I

{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

|(q, a)| 1 pour tout q Q, a .


`
A partir dun etat, il y a au plus un calcul sur un mot donne.
I

Determinisation
Soit A un automate fini. On peut construire un automate deterministe B reconnaissant le meme langage que A.

Automate des parties.

Automates et Langages Pr
epa Agreg 2011/2012, 7

Langages reconnaissables

Langages rationnels

Minimisation

Applications

Automates complets/emondes

Automate complet. Automate emonde


I
I

A = (Q, , I , F ) est complet si q Q, a , (q, a) 6= .


A = (Q, , I , F ) est emonde si q Q
I
I

i I , w avec q (i, w ) (q est accessible depuis i)


f F , w avec f (q, w ) (q est co-accessible de f ).

Calcul iteratif des (co-)accessibles.


Pour tout automate fini, on peut construire un automate complet (resp.
emonde) qui reconnat le meme langage.

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

Automates avec -transitions

Automate avec -transitions


A = (Q, , I , F ) o`
u
I

Q ensemble fini detats, I Q etats initiaux, F Q etats finaux,

: Q ( {}) 2Q fonction de transition.

: ( {}) projection sur lalphabet .


a

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

Probl`emes du vide et du mot

Probl`emes du vide et du mot


I

Probl`eme du vide : etant donne A, decider si L(A) = .

Probl`eme du mot : etant donnes A et w , decider si w L(A).

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

Legalite et linclusion de langages reconnaissables sont decidables.

L est reconnaissable si et seulement si L \ {} est reconnaissable.

Concatenation et iteration

[BBC,p.303]

La famille Rec( ) est close par concatenation et iteration.

Automates et Langages Pr
epa Agreg 2011/2012, 11

Langages reconnaissables

Langages rationnels

Minimisation

Applications

Proprietes de cloture (2)


Pour L , on definit :
I

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}.

Prefixe, suffixe, facteur


La famille Rec( ) est close par prefixe, suffixe, facteur.
Pour L, K , on definit :
I

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

Proprietes de cloture (3)

Morphisme (de monodes)


: 1 2 est un morphisme si w1 , w10 1 , (w1 w10 ) = (w1 ) (w10 ).

Morphisme et morphisme inverse


La famille Rec( ) est close par morphisme et morphisme inverse.

Automates et Langages Pr
epa Agreg 2011/2012, 13

Langages reconnaissables

Langages rationnels

Minimisation

Applications

Proprietes de cloture (4)

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= }.

Substitution rationnelle et substitution rationnelle inverse


La famille Rec( ) est close par substitution rationnelle et substitution rationnelle inverse.

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]

Soit L Rec( ). Alors il existe N N tel que pour tout w L


1. si |w | N alors il existe une factorisation w = w1 w2 w3 avec w2 6= telle
que w1 w2 w3 L.
2. pour toute factorisation w = u1 u2 u3 avec |u2 | N, il existe une
factorisation u2 = w1 w2 w3 avec w2 6= telle que u1 w1 w2 w3 u3 L.
3. pour toute factorisation w = uw1 w2 wN v o`
u wi 6= , il existe
0 j < k N tel que uw1 wj (wj+1 wk ) wk+1 wN v L.

Applications des lemmes de letoile, exemples de non-reconnaissables.

Automates et Langages Pr
epa Agreg 2011/2012, 15

Langages reconnaissables

Langages rationnels

Minimisation

Applications

Caracterisation

Theor`eme (Ehrenfeucht, Parikh, Rozenberg)

[Saka,p.128][Car,p.54]

Soit L . Les proprietes suivantes sont equivalentes :


(i) L est reconnaissable ;
(ii) il existe N N tel que pour tout mot w et toute factorisation
w = uw1 wN v avec wi 6= , il existe 0 j < k N tels que :
n N

w L uw1 wj (wj+1 wk )n wk+1 wN v L

(iii) il existe N N tel que pour tout mot w et toute factorisation


w = uw1 wN v avec wi 6= , il existe 0 j < k N tels que :
w L uw1 wj wk+1 wN v L

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

et a, pour a , sont des expressions rationnelles ;

si E et F sont des expressions rationnelles, alors (E + F ), (E F ) et (E )


aussi.

On note E lensemble des expressions rationnelles.

Semantique
Le langage denote par une expression rationnelle est defini inductivement :
I
I

JK = , et JaK = {a}, pour tout a ;

J(E + F )K = JE K JF K, J(E F )K = JE K JF K et J(E )K = JE K .

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 .

Rat( ) est la plus petite partie de 2 contenant et {a}, pour a , et


fermee par union, concatenation et iteration.

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

Des automates aux expressions : McNaughton-Yamada

Applications

[HU, p.33] [Car, p.38]

Soit A = (Q, , I , F ) un automate fini, avec Q = {1, , n}.


On definit, pour k {0, , n} et p, q Q
a

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)

Principe : calcul inductif dune expression rationnelle pour les Lp,q .


Initialement,
L(0)
p,q

(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

Des automates aux expressions : Brzozowski-McCluskey

[Saka, p.105] [Car, p.39]

Principe : elimination detats en utilisant des automates generalises.

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

Des automates aux expressions : resolution dequations

Soit A = (Q, , I , F ) un automate fini.


Pour p Q, Xp est le langage des mots acceptes avec p comme etat initial.
(P
aXq + si p F
Xp = P(p,a,q)
aX
sinon.
q
(p,a,q)
P
L(A) = iI Xi
Principe : Resolution du syst`eme dequations lineaires par elimination
gaussienne.

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

Des expressions aux automates : Thompson

[HU, p.30],[Saka, p.157]

Principe : Construction dun automate A(E ) par induction structurelle sur E .


Proprietes des automates : un unique etat initial sans transition entrante, et un
unique etat final sans transition sortante.
I

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

Des expressions aux automates : Glushkov

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

Des expressions aux automates : Antimirov

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 )).

Automate des derivees : A = (Q, , I , F ) o`


u
Q = {E1 | w , E1 w (E )}
I = {E } F = {E1 | JE1 K} = {(E1 , a, E2 ) | E2 a (E1 )}

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

Automate des residuels

Residuel
Le residuel de L par u est le quotient u 1 L = {v | uv L}.

Automate des residuels


Soit L . Lautomate des residuels de L est R(L) = (QL , L , {iL }, FL ) avec :
I

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]

L est reconnaissable ssi L a un nombre fini de residuels.

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

q 1 (p, a) (q) 2 ((p), a).

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]

Soient A = (Q, , {i}, F ) un automate deterministe complet pour L, et R(L) =


(QL , L , iL , FL ) lautomate des residuels associe `
a L. Alors : Q QL defini par
(q) = Lq = {w | (q, w ) F } est un morphisme surjectif.
Automates et Langages Pr
epa Agreg 2011/2012, 27

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.

Minimalite de lautomate des residuels


Soit L Rec( )
I

R(L) est minimal pour lordre quotient  parmi les automates


deterministes complets reconnaissant L

Tout automate deterministe complet reconnaissant L avec un nombre


minimal detats est isomorphe `
a R(L).

Automates et Langages Pr
epa Agreg 2011/2012, 28

Langages reconnaissables

Langages rationnels

Minimisation

Algorithme par renversement

Applications

[Saka, p.125]

Proposition
Soit L Rec( ). Le determinise dun automate co-deterministe co-accessible
qui reconnat L est minimal.

Soit A = (Q, , I , F ). Le transpose de A est tr(A) = (Q, t , F , I ) avec :


t (p, a) = {q | p (q, a)}.

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 est compatible avec

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)].

Rq : A/ est deterministe et complet.

Proposition

[Car, p. 47]

Soit A = (Q, , {i}, F ) un automate deterministe et une congruence sur Q.


Alors L(A/ ) = L(A).
Automates et Langages Pr
epa Agreg 2011/2012, 30

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

est appelee congruence de Nerode.


Rq : le quotient A/ est isomorphe `
a R(L).

Consequences
Soit L Rec( ).
I

On peut calculer lautomate minimal de L `


a partir dun automate
deterministe pour L en utilisant lequivalence de Nerode.

Legalite de langages reconnaissables peut etre decidee en comparant leurs


automates minimaux respectifs.

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

[Aut, p.61],[Saka, p.124]

Soit A = (Q, , {i}, F ) un automate deterministe complet.


I

p i q ssi Lp i = Lq i

Si i+1 = i alors i =

= |Q|2 .

Optimisation : algorithme dHopcroft, utilisant diviser pour regner.


Calcul de lequivalence de Nerode en O(n log(n)).
[BBC, p.321]
Automates et Langages Pr
epa Agreg 2011/2012, 32

Langages reconnaissables

Langages rationnels

Minimisation

Recherche de motif

Applications

[Saka, p.163]

But : recherche dun mot fini w dans un texte t sur .


Applications : grep, recherche de sequences ADN
I

Entree : w = w1 wm et t = t1 tn

Sortie : k tel que w1 wm = tk+1 tk+m

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

Recherche de motif : Algorithme de Morris et Pratt


Bord
Soit v . Le bord de v est le plus long sous-mot strict de v qui est `
a la fois
prefixe et suffixe de v .
On definit : {0, , m} {1, , m 1} par :
(0) = 1

(i) = |bord(w1 wi )|

Algorithme de Morris et Pratt

[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

Recherche de motif : Automate du motif

Automate dun motif


Lautomate du motif w est Aw = (Pref(w ), , {}, {w }) o`
u:
(
ua
si ua prefixe de w
(u, a) =
bord(ua) sinon.

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]

Premi`ere etape de la chane de compilation.


But : Transformer une suite de caract`eres en une suite de mots, les lex`emes.
Lanalyseur lexical reconnat les composants elementaires de la syntaxe.
Quelques expressions rationnelles pour lanalyse lexicale de C par flex:
mots clefs Eif = if
symboles E= = =

Eint = int
E+ = +

E; = ;

blancs Espace = [ \n\t]+


identifiants Eid = [a zA Z ][0 9a zA Z ]
entiers Eic = [1-9][0-9]* | 0[0-1]*
int a = 12;
int b = 3 + a;

int space id space = space ic ; space


int space id space = space ic + space id ;

Deux principes :
I

Plus long prefixe : 12 ne constitue quun lex`eme ic.

Priorites : int pourrait etre un identifiant, mais int est prioritaire.


Automates et Langages Pr
epa Agreg 2011/2012, 36

Langages reconnaissables

Langages rationnels

Minimisation

Applications

Analyse lexicale : Algorithme naf

P
Principe : simuler un automate deterministe pour le langage L( i Ei ).
A = (Q, , {q0 }, F ) ; f : F {E1 , , Ep } ; w = a1 an

Analyse lexicale nave


q:=q0 ; i:=1 ;
tant que i n faire
bla qf :=;
bla tant que i n et (q,ai ) 6=
blabla si q F alors
blablabla qf :=q ; j:=i ;
blabla i:=i+1 ;
bla si qf = alors
blabla retourner
echec;
bla afficher f (qf ) ; i:=j ;
retourner succ`
es;

Automates et Langages Pr
epa Agreg 2011/2012, 37

Langages reconnaissables

Langages rationnels

Minimisation

Applications

Analyse lexicale : Programmation dynamique


Principe : trouver un facteur maximal `
a partir dun etat q de lautomate depuis
la position i du mot w en utilisant dautres calculs pour q 0 et i + 1.
8
>
>(, 0)
>
<(q, i)
T (q, i) =
>
(q, i)
>
>
:T (q 0 , i + 1)

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

La semantique de qui a pour variables libres {x1 , , xn } est un


sous-ensemble de Nn .

Theor`eme

[Car, p.164]

Larithmetique de Presburger est decidable.

Preuve : Construction dun automate fini reconnaissant les codages


des n-uplets satisfaisant une formule, par induction structurelle.
Formule valide ssi langage non vide.
Automates et Langages Pr
epa Agreg 2011/2012, 39

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]

Le probl`eme de separation par automate est NP-complet.

Preuve de la NP-difficulte par reduction de SAT.

Robert W. Floyd et Richard Biegel. The language of machines: An Introduction to Computability


and Formal Languages. Computer Science Press, 1994.

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

V ensemble fini de variables,

S V variable initiale,

T ensemble fini de terminaux,

P V (V T ) ensemble fini de r`egles de production.

Pour (X , ) P, on note X . Par extension, on note X 1 + + n si


(X , 1 ) (X , n ) P.

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.

La derivation est gauche (resp. droite) si u T (resp. v T ).


On note la fermeture transitive et reflexive de .

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 et langage lineaires

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

chaque feuille est etiquetee par une variable ou un terminal,

chaque noeud interne est etiquete par une variable X , et si a1 , , an sont


les etiquettes de ses fils, alors (X , a1 an ) P.

Derivations et arbres de derivation


I

Si S w est une derivation de G , alors il existe un arbre de derivation


de racine S, et de fronti`ere w .

Si t est un arbre de derivation de G , alors la racine de t se derive (en une


derivation gauche) en la fronti`ere de t.

En consequence, le langage LG (S) est lensemble de mots w T tels quil


existe un arbre de derivation de racine S et de fronti`ere w .

Automates et Langages Pr
epa Agreg 2011/2012, 46

Langages alg
ebriques

Automates `
a pile

Analyse syntaxique

Ambigute

Ambigute
I

Une grammaire algebrique G = (V , T , P, S) est ambigue sil existe un mot


(V T ) qui est la fronti`ere de deux arbres de derivations de G
distincts et de meme racine.

Un langage algebrique est (inheremment) ambigu si toute grammaire qui


lengendre est ambigue. Sinon, il est non-ambigu.

Exemples de grammaires et langages ambigus ou non.

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

Theor`eme de Bar-Hillel, Perles et Shamir


Pour tout langage algebrique L, il existe N N tel que pour tout mot w L,
si |w | N, alors il existe une factorisation w = uv telle que |uv | > 0,
|uv | < N et u n v n L (pour tout n 0).

Lemme dOgden

[Car, p.92]

Soit G = (V , T , P, S) une grammaire algebrique et Y V . Il existe K N


tel que tout w LG (Y ) ayant au moins K lettres distinguees se factorise en
w = uv avec , , (V T ) et
I

Y X , X uXv , X ,

soit , u, soit , v , contiennent des lettres distinguees, et

uv contient moins de K lettres distinguees.

Automates et Langages Pr
epa Agreg 2011/2012, 48

Langages alg
ebriques

Applications

Automates `
a pile

Analyse syntaxique

[Car, p.94-95] [Aut, p.107-108]

Le langage L1 = {an b n c n | n 0} nest pas algebrique.

Consequence : La classe des langages algebriques nest close ni par


intersection, ni par complementation.

Le langage L2 = {am b n c m d n | n, m 0} nest pas algebrique.

Le langage L3 = {am b m c n | m, n 0} {am b n c n | m, n 0} est


inheremment ambigu.

Consequence : La classe des langages algebriques non ambigus nest pas


close par union.

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

Formes normale de Chomsky

Forme normale de Chomsky


Une grammaire algebrique G = (V , T , P, S) est sous forme normale de Chomsky
si P V (V 2 T {}).

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

Forme normale de Greibach

Forme normale de Greibach


Une grammaire algebrique G = (V , T , P, S) est sous-forme normale de
I

Greibach (FNG) si P V TV ,

Greibach quadratique (FNGQ) si P V (T TV TV 2 ).

Theor`eme

[Car, p.106] [HU, p.95] [Aut, p.111]

Pour toute grammaire algebrique propre on peut construire une grammaire


algebrique sous forme normale de Greibach quadratique equivalente.

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.

Intersection avec un rationnel


Les langages algebriques sont clos par intersection avec un rationnel.

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

Theor`eme de Chomsky et Sch


utzenberger

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 + .

Theor`eme (Chomsky et Sch


utzenberger)

[Aut, p.92] [Car, p.100]

Un langage L est algebrique si et seulement si il existe n N, K un langage


rationnel et un morphisme alphabetique tels que L = (Dn K ).

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 vide ? fini ou infini ?

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

Retour sur le probl`eme du mot


Probl`eme du mot

[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

Algorithme de Cocke, Kasami et Younger


E[i,j] := ;
pour 1 i n, faire
llpour (X,a[i]) P faire E[i,i] := E[i,i] {X};
pour 1 d n-1, faire
llpour 1 i n-d, faire
llllpour i k i+d, faire
llllllpour (X,YZ) P, faire
llllllllsi Y E[i,k] et Z E[k+1,i+d] alors E[i,i+d]:= E[i,i+d] {X};
Automates et Langages Pr
epa Agreg 2011/2012, 57

Langages alg
ebriques

Automates `
a pile

Analyse syntaxique

Equations
algebriques

Syst`eme dequations algebriques


Soit G = (V , T , P, S) une grammaire algebrique, avec V = {X1 , , Xn } pour
` G on associe S(G ) le syst`eme dequations sur les
ensemble de variables. A
langages suivant :
X
Li =
(L)
(Xi ,)P

Proposition
I

(LG (X1 ), , LG (Xn )) est la plus petite solution de S(G ), et

si G est propre, (LG (X1 ), , LG (Xn )) est lunique solution propre de


S(G ).

langages algebriques = solutions de syst`emes dequations polynomiales

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]

Tout langage algebrique est commutativement equivalent `


a un langage rationnel.
Consequence : Les langages algebriques sur un alphabet unaire sont rationnels.

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

Q ensemble fini detats,

alphabet dentree,

alphabet de pile,

Q ( {}) Q fonction de transition.

(q0 , 0 ) Q configuration initiale,

F Q ensemble detats finaux,

A est temps-reel sil ne poss`ede pas d-transitions.


Configuration : (q, h) Q .
a
Transition : (p, h)
(q, uh) pour (p, , a, q, u) .

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

Variantes dautomates `a pile

Differents modes dacceptation :


w

I Etat
(q, h) avec q F }
final L = {w | (q0 , 0 )
w

Pile vide L = {w | (q0 , 0 )


(q, )}

Pile vide et etat final L = {w | (q0 , 0 )


(q, ) avec q F }

Sommet de pile L = {w | (q0 , 0 )


(q, h) avec 0 }

Equivalence
des modes dacceptation

[Car, p.106]

Pour tout automate `


a pile A avec acceptation par pile vide (resp. par pile vide
et etat final, resp. par sommet de pile) on peut construire un automate `
a pile
A0 avec acceptation par etat final tel que L(A) = L(A0 ).

Automates et Langages Pr
epa Agreg 2011/2012, 61

Langages alg
ebriques

Automates `
a pile

Analyse syntaxique

Lien avec les grammaires algebriques

Equivalence
grammaires algebriques / automates `a pile

[Car, p.108]

Un langage L est algebrique si et seulement si il existe un automate `


a pile
qui laccepte.

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 |, et

i k = |hi | |hi+1 |.

Informellement, pour toute execution les variations de la hauteur de pile suivent


deux phases : une montante puis une descendante.

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]

Pour tout automate `


a pile, le langage de pile est rationnel.

Automates et Langages Pr
epa Agreg 2011/2012, 64

Langages alg
ebriques

Automates `
a pile

Analyse syntaxique

Automates `a pile deterministes

Automate `a pile deterministe


A = (Q, , , , q0 , 0 , F ) est deterministe si pour tout (p, ) Q
a

pour tout a {} il y a au plus une transition (p, )


(q, h), et

sil existe une transition (p, )


(q, h), alors il ny a pas de transition
a
(p, )
(q, h) pour a .

Remarque : dans un automate `


a pile deterministe il peut y avoir plusieurs
executions sur un meme mot (-transitions `
a la fin).

Automates et Langages Pr
epa Agreg 2011/2012, 65

Langages alg
ebriques

Automates `
a pile

Analyse syntaxique

Proprietes des automates deterministes

Complementation

[HU, p.235] [Aut, p.128] [Car, p.113]

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.

A deterministe peut avoir des executions acceptantes et non acceptantes


sur une entree donnee.

Proposition

[Aut, p.131] [Car, p.115]

Tout langage algebrique deterministe est non ambigu.

Automates et Langages Pr
epa Agreg 2011/2012, 66

Langages alg
ebriques

Automates `
a pile

Analyse syntaxique

Lemme diteration pour les deterministes

[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,

soit , u, soit , v , contiennent des lettres distinguees, et

uv contient moins de K lettres distinguees.

{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, L langages deterministes, R langage rationnel.


I

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

Biblio : Aho/Sethi/Ullman 1986 Compilers principles techniques and tools

But : Verifier quune suite de lex`emes est syntaxiquement correcte et la


transformer en arbre de syntaxe abtraite.
Lensemble des programmes syntaxiquement corrects est le langage dune
grammaire algebrique.
I

Les terminaux sont les lex`emes ;

savoir si un programme est syntaxiquement correct revient `


a resoudre le
probl`eme du mot ;

un arbre de derivation est un arbre de syntaxe abstraite.

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 }

et acceptant par pile vide. Initialement, la pile contient S.


Pour lever le non-determinisme, on regarde la prochaine lettre du mot dentree.
Grammaires LL(1)
I

Left to right scanning: la suite de lex`emes est lue de gauche `


a droite

Leftmost derivation: on construit une derivation gauche

1 look-ahead: la prevision se fait sur 1 symbole

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 ) =

Soit L T . Premier(L) = {Premier(w ) | w L}

Soit G = (V , T , P, S) une grammaire algebrique, et (T V ) . Alors


Premier() = Premier(LG ()) T .

Calcul iteratif de Premier. Pour V T et i 0 on pose :


I

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

Toute grammaire LL(1) est non ambigue.

Tout langage rationnel est engendre par une grammaire LL(1).

Lequivalence est decidable pour les grammaires LL(1).

Caracterisation

[ASU, p.219]

Une grammaire G = (V , T , P, S) est LL(1) si et seulement si pour tout X V ,


pour toutes productions X et X avec 6= on a
Premier(Suivant(X )) Premier(Suivant(X )) =
Automates et Langages Pr
epa Agreg 2011/2012, 73

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

Lanalyseur LL(1) de G accepte exactement LG (S).

Lanalyseur LL(1) peut etre transforme en un automate `


a pile deterministe.
Automates et Langages Pr
epa Agreg 2011/2012, 74

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 )) = .

Table danalyse fortement LL(k)


Pour chaque X V et w T k
bla si (X , ) P et w Premierk (Suivantk (X ))

bla bla mettre X


dans la case [X , w ]

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

Lanalyseur LL(k) de G accepte exactement LG (S).

Lanalyseur LL(k) peut etre transforme en un automate `


a pile deterministe.
Automates et Langages Pr
epa Agreg 2011/2012, 75

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}

et acceptant lorsque la pile contient uniquement le symbole S. Initialement, la


pile est vide.
Grammaires LR(0)
I

Left to right scanning: la suite de lex`emes est lue de gauche `


a droite

Rightmost derivation: on construit une derivation droite

0 look-ahead: la prevision se fait sur 0 symbole


Automates et Langages Pr
epa Agreg 2011/2012, 76

Langages alg
ebriques

Automates `
a pile

Analyse syntaxique

Grammaires LR(0)
Conflits
I

(X , , w , av ) est un conflit shift/reduce sil existe (V T ) et deux


executions dans lautomate shift/reduce


X
S
I

et


a
S.

(X , , v , Y , , w ) est un conflit reduce/reduce sil existe , (V T )


et deux executions dans lautomate shift/reduce


X
S

et


Y
S,

avec = .

Grammaire augmentee : Pour G = (V , T , P, S), la grammaire augmentee est


G 0 = (V {S 0 }, T , P {(S 0 , S)}, S 0 ).

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

Automate des items


Items : {(X , ) | (X , ) P}
Exemple : Les items de la production (S, aXb) sont (S, aXb), (S, a Xb),
(S, aX b) et (S, aXb).

Automate des items


Lautomate des items dune grammaire augmentee G = (V , T , P, S) est un
automate fini (Q, , {q0 }, F ) sur lalphabet V T o`
u:
I

Q est lensemble des items de G

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.

Construction de la table des actions et branchements


Pour chaque i {0, n}
bla pour chaque X tel que (X , ) i
bla bla mettre reduce(X , ) dans les cases [i, a] pour a T {}
bla pour chaque a T
bla bla mettre shift((i, a)) dans la case [i, a]
bla pour chaque X V
bla bla mettre goto((i, X )) dans la case [i, X ]
bla si (S 0 , S) i mettre accept dans la case [i, ]

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

Lanalyseur LR(0) de G accepte exactement LG (S).

Lanalyseur LR(0) peut etre transforme en un automate `


a pile deterministe.
Automates et Langages Pr
epa Agreg 2011/2012, 79

You might also like