79
Automates et Langages Nathalie Bertrand [email protected] Pr´ epa agreg 2011/2012 Automates et Langages – Pr´ epa Agreg – 2011/2012, 1

Cours Lf 2011

Embed Size (px)

DESCRIPTION

computer course : automates

Citation preview

  • Automates et Langages

    Nathalie [email protected]

    Prepa agreg 2011/2012

    Automates et Langages Prepa 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, Daniele Beauquier et Philippe Chretienne.Elements dalgorithmique.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.Elements de theorie des automates.Vuibert informatique, 2003.

    Automates et Langages Prepa Agreg 2011/2012, 2

  • Langages reconnaissables Langages rationnels Minimisation Applications

    Partie I

    Automates finis

    Automates et Langages Prepa 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 est la concatenation de w et w 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 : L L = {w w |w L, w L}.Iteration : L =

    Sn0 L

    n ou L0 = {}, et Li+1 = Li L.

    Automates et Langages Prepa Agreg 2011/2012, 4

  • Langages reconnaissables Langages rationnels Minimisation Applications

    Automates finis

    Automate fini

    A = (Q, , I ,F ) ouI Q ensemble fini detats,

    I I Q ensemble detats initiaux,I F Q ensemble detats finaux,I : Q 2Q fonction de transition.

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

    Execution de A sur un mot w = a1 an :

    q0a1 q1 qn1

    an qn.

    Extension de a Q :(q, ) = q and (q,w a) = ((q,w), a) pour w et a .

    Automates et Langages Prepa 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 queL = 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 {anbn | n 0}I {w | |w |a = |w |b}

    Automates et Langages Prepa Agreg 2011/2012, 6

  • Langages reconnaissables Langages rationnels Minimisation Applications

    Automates deterministes

    Automate deterministe

    A = (Q, , I ,F ) est deterministe siI |I | = 1, etI |(q, a)| 1 pour tout q Q, a .

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

    Determinisation

    Soit A un automate fini. On peut construire un automate deterministe B recon-naissant le meme langage que A.

    Automate des parties.

    Automates et Langages Prepa Agreg 2011/2012, 7

  • Langages reconnaissables Langages rationnels Minimisation Applications

    Automates complets/emondes

    Automate complet. Automate emonde

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

    I i I , w avec q (i ,w) (q est accessible depuis i)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.

    Probleme du vide

    Soit A un automate fini. On peut decider si L(A) = .

    Automates et Langages Prepa Agreg 2011/2012, 8

  • Langages reconnaissables Langages rationnels Minimisation Applications

    Automates avec -transitions

    Automate avec -transitions

    A = (Q, , I ,F ) ouI Q ensemble fini detats, I Q etats initiaux, F Q etats finaux,I : Q ( {}) 2Q fonction de transition.

    : ( {}) projection sur lalphabet .

    Une execution q0a1 q1 qn1

    an 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 Prepa Agreg 2011/2012, 9

  • Langages reconnaissables Langages rationnels Minimisation Applications

    Problemes du vide et du mot

    Problemes du vide et du mot

    I Probleme du vide : etant donne A, decider si L(A) = .I Probleme du mot : etant donnes A et w , decider si w L(A).

    Theoreme

    Les problemes 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 Prepa 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 operationsensemblistes (union, intersection, complement).

    Corollaires

    I Legalite et linclusion de langages reconnaissables sont decidables.

    I 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 Prepa Agreg 2011/2012, 11

  • Langages reconnaissables Langages rationnels Minimisation Applications

    Proprietes de cloture (2)

    Pour L , on definit :I Pref(L) = {w | w , w w L},I Suff(L) = {w | w , w w L},I 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 K1 L = {w | k K , k w L},I L K1 = {w | k K , w k L}.

    Quotient

    La famille Rec() est close par quotients :

    L Rec() et K (K1 L) Rec() et (L K1) Rec().

    Automates et Langages Prepa Agreg 2011/2012, 12

  • Langages reconnaissables Langages rationnels Minimisation Applications

    Proprietes de cloture (3)

    Morphisme (de monodes)

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

    Morphisme et morphisme inverse

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

    Automates et Langages Prepa 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) = wL (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 ra-tionnelle inverse.

    Automates et Langages Prepa 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 L1. si |w | N alors il existe une factorisation w = w1w2w3 avec w2 6= telle

    que w1w2 w3 L.

    2. pour toute factorisation w = u1u2u3 avec |u2| N, il existe unefactorisation u2 = w1w2w3 avec w2 6= telle que u1w1w2 w3u3 L.

    3. pour toute factorisation w = uw1w2 wNv ou wi 6= , il existe0 j < k N tel que uw1 wj(wj+1 wk)wk+1 wNv L.

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

    Automates et Langages Prepa Agreg 2011/2012, 15

  • Langages reconnaissables Langages rationnels Minimisation Applications

    Caracterisation

    Theoreme (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 factorisationw = uw1 wNv avec wi 6= , il existe 0 j < k N tels que :

    n N w L uw1 wj(wj+1 wk)nwk+1 wNv L

    (iii) il existe N N tel que pour tout mot w et toute factorisationw = uw1 wNv avec wi 6= , il existe 0 j < k N tels que :

    w L uw1 wjwk+1 wNv L

    Corollaire

    L est reconnaissable ssi L et L satisfont le lemme de letoile par bloc (3.).

    Automates et Langages Prepa 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 ;I 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 JK = , et JaK = {a}, pour tout a ;I J(E + F )K = JEK JF K, J(E F )K = JEK JF K et J(E)K = JEK.

    Automates et Langages Prepa Agreg 2011/2012, 17

  • Langages reconnaissables Langages rationnels Minimisation Applications

    Langages rationnels

    Langage rationnel

    L est rationnel sil existe E E tel que L = JEK.On note Rat() la famille des langages rationnels sur .

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

    fermee par union, concatenation et iteration.

    Equivalence dexpressions rationnelles

    E ,F E sont equivalentes, note E F , si JEK = JF K.

    Automates et Langages Prepa Agreg 2011/2012, 18

  • Langages reconnaissables Langages rationnels Minimisation Applications

    Theoreme de Kleene

    Theoreme (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 Prepa Agreg 2011/2012, 19

  • Langages reconnaissables Langages rationnels Minimisation Applications

    Des automates aux expressions : McNaughton-Yamada [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

    L(k)p,q = {a1 am | pa1 p1

    a2 am q avec p1, , pm1 {1, , k}}.

    L(A) =[

    iI ,fF

    L(n)i,f .

    Principe : calcul inductif dune expression rationnelle pour les L(k)p,q.

    Initialement,

    L(0)p,q =

    (P(p,a,q) a + si p = q,P(p,a,q) a sinon.

    Induction :L(k+1)p,q = L

    (k)p,q + L

    (k)p,k+1 (L

    (k)k+1,k+1)

    L(k)k+1,q.

    Automates et Langages Prepa 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 equivalentB = ({q0, qf }, B, {q0}, {qf }) ou B = {(q0,L(A), qf )}.

    Automates et Langages Prepa 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.

    Xp =

    (P(p,a,q) aXq + si p FP(p,a,q) aXq sinon.

    L(A) =P

    iI Xi

    Principe : Resolution du systeme dequations lineaires par eliminationgaussienne.

    Lemme (Arden) [Car,p.40][Saka, p.108]

    Soient K , L , avec / K . Alors KL est lunique solution de lequationX = KX + L.

    Automates et Langages Prepa 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 ununique etat final sans transition sortante.

    I A({}) et A({a}) a

    I Somme : A(E + F ) A(E)

    A(F )

    I Concatenation : A(E F ) A(E) A(F )

    I Etoile : A(E) A(E)

    Automates et Langages Prepa 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 Atel que L(A) = JEK.

    Automates et Langages Prepa Agreg 2011/2012, 24

  • Langages reconnaissables Langages rationnels Minimisation Applications

    Des expressions aux automates : Antimirov [Saka, p.159]

    Derivee partielle

    Soient E Rat() et a . La derivee partielle a(E) de E par rapport a a estlensemble des expressions rationnelles defini inductivement par :I a() = I a(a) = {} et a(b) = pour b 6= aI a(E + F ) = a(E) a(F ) I a(E) = a(E) E

    I a(E F ) =

    (a(E) F si / JEKa(E) F a(F ) sinon.

    Extension a des mots de : (E) = {E} wa(E) = a(w (E)).

    Automate des derivees : A = (Q, , I ,F ) ouQ = {E1 | w , E1 w (E)}I = {E} F = {E1 | JE1K} = {(E1, a,E2) |E2 a(E1)}

    Proprietes

    Lautomate des derivees est un automate fini et satisfait : L(A) = JEK.

    Automates et Langages Prepa Agreg 2011/2012, 25

  • Langages reconnaissables Langages rationnels Minimisation Applications

    Automate des residuels

    Residuel

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

    Automate des residuels

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

    1L, a) = a1(u1L) = (ua)1L,

    I iL = L = 1L,

    I FL = {u1L | u1L} = {u1L | u L}.

    Proposition [BBC, p.312]

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

    Automates et Langages Prepa 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 . Unmorphisme : A1 A2 est une application de Q1 dans Q2 telle que :

    I (I1) I2,I (F1) F2,I 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 automatesdeterministes 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 Prepa 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 unquotient 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

    I Tout automate deterministe complet reconnaissant L avec un nombreminimal detats est isomorphe a R(L).

    Automates et Langages Prepa Agreg 2011/2012, 28

  • Langages reconnaissables Langages rationnels Minimisation Applications

    Algorithme par renversement [Saka, p.125]

    Proposition

    Soit L Rec(). Le determinise dun automate co-deterministe co-accessiblequi 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 Prepa 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 p, q p q a , (p, a) (q, a)I elle sature F p, q p q p F ssi q F

    Automate quotient

    Soit A = (Q, , {i},F ) un automate deterministe et une relation dequivalencesur Q. Le quotient de A par est lautomate

    A/= (Q/, , {[i ]}, {[f ] | f F}) ou ([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 Prepa 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

    p q ssi Lp = Lqssi 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.

    I Legalite de langages reconnaissables peut etre decidee en comparant leursautomates minimaux respectifs.

    Automates et Langages Prepa 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

    I Si i+1 =i alors i = 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 Prepa Agreg 2011/2012, 32

  • Langages reconnaissables Langages rationnels Minimisation Applications

    Recherche de motif [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 tnI Sortie : k tel que w1 wm = tk+1 tk+m

    Algorithme naf

    i:=1 ; j:=1 ;

    tant que i m et j n fairebla si t[j] = w[i] alors i:=i+1 ; j:=j+1bla sinon j:=j-i+2 ; i:=1si i > m alorsbla retourner occurrence a la position j-msinon

    bla retourner pas doccurrence

    Automates et Langages Prepa 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 foisprefixe 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 fairebla si i 1 et t[j] 6= w[i] alors i:=1 + (i-1)bla sinon i:=i+1 ; j:=j+1si i > m alorsbla retourner occurrence a la position j-msinon

    bla retourner pas doccurrence

    Automates et Langages Prepa 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}) ou :

    (u, a) =

    (ua si ua prefixe de w

    bord(ua) sinon.

    Proposition

    Lautomate du motif w est lautomate minimal de w : Aw = R(w).

    Automates et Langages Prepa Agreg 2011/2012, 35

  • Langages reconnaissables Langages rationnels Minimisation Applications

    Analyse lexicale [HU, p.45]

    Premiere etape de la chane de compilation.But : Transformer une suite de caracteres en une suite de mots, les lexemes.

    Lanalyseur lexical reconnat les composants elementaires de la syntaxe.

    Quelques expressions rationnelles pour lanalyse lexicale de C par flex:

    mots clefs Eif = if Eint = int

    symboles E= = = 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 lexeme ic.

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

    Automates et Langages Prepa Agreg 2011/2012, 36

  • Langages reconnaissables Langages rationnels Minimisation Applications

    Analyse lexicale : Algorithme naf

    Principe : simuler un automate deterministe pour le langage L(P

    i Ei ).A = (Q, , {q0},F ) ; f : F {E1, ,Ep} ; w = a1 an

    Analyse lexicale nave

    q:=q0 ; i:=1 ;

    tant que i n fairebla qf:=;bla tant que i n et (q,ai) 6= blabla si q F alorsblablabla qf:=q ; j:=i ;blabla i:=i+1 ;bla si qf= alorsblabla retourner echec;bla afficher f (qf) ; i:=j ;retourner succes;

    Automates et Langages Prepa 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 depuisla position i du mot w en utilisant dautres calculs pour q et i + 1.

    T (q, i) =

    8>>>>>:(, 0) si (q, ai ) = et q / F(q, i) si (q, ai ) = et q F(q, i) si (q, ai ) = q

    , T (q, i + 1) = (, 0) et q FT (q, i + 1) sinon.

    T (q, n + 1) =

    ((, 0) si q / F(q, n + 1) sinon.

    Analyse lexicale

    i:=1 ;

    tant que i n fairebla (qf,i):=T(q0,i);bla si qf= alorsblabla retourner echec;bla afficher f (qf) ;retourner succes;

    Automates et Langages Prepa 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 Presburgerest 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 unsous-ensemble de Nn.

    Theoreme [Car, p.164]

    Larithmetique de Presburger est decidable.

    Preuve : Construction dun automate fini reconnaissant les codagesdes n-uplets satisfaisant une formule, par induction structurelle.Formule valide ssi langage non vide.

    Automates et Langages Prepa Agreg 2011/2012, 39

  • Langages reconnaissables Langages rationnels Minimisation Applications

    Classification

    Probleme de separation par automate.Etant donnes S ,T finis, et k N, existe-t-il un automate deterministe Aa k etats tel que S L(A) et T L(A) = ?

    Theoreme [FB, Ch.9]

    Le probleme 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 Prepa Agreg 2011/2012, 40

  • Langages algebriques Automates a pile Analyse syntaxique

    Partie II

    Automates a pile

    Automates et Langages Prepa Agreg 2011/2012, 41

  • Langages algebriques Automates a pile Analyse syntaxique

    Grammaires algebriques

    Grammaire algebrique

    G = (V ,T ,P, S) ou

    I V ensemble fini de variables,

    I S V variable initiale,I T ensemble fini de terminaux,

    I P V (V T ) ensemble fini de regles de production.

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

    Automates et Langages Prepa Agreg 2011/2012, 42

  • Langages algebriques 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 12 k , alors il existe 1, 2 et k1, k2 tels que i ki i , = 1 + 2 etk = k1 + k2.

    Automates et Langages Prepa Agreg 2011/2012, 43

  • Langages algebriques 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 deparentheses est engendre par la grammaire ayant pour regles de productionS aiSaiS , 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 Prepa Agreg 2011/2012, 44

  • Langages algebriques Automates a pile Analyse syntaxique

    Grammaire et langage lineaires

    Grammaire lineaire

    Une grammaire algebrique G = (V ,T ,P, S) est lineaire si pour toute regle deproduction (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.

    {anbn | n 0} est lineaire.

    Automates et Langages Prepa Agreg 2011/2012, 45

  • Langages algebriques 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 unarbre fini etiquete par T V {} tel que:

    I chaque feuille est etiquetee par une variable ou un terminal,

    I chaque noeud interne est etiquete par une variable X , et si a1, , an sontles 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 derivationde racine S , et de frontiere w .

    I Si t est un arbre de derivation de G , alors la racine de t se derive (en unederivation gauche) en la frontiere de t.

    En consequence, le langage LG (S) est lensemble de mots w T tels quilexiste un arbre de derivation de racine S et de frontiere w .

    Automates et Langages Prepa Agreg 2011/2012, 46

  • Langages algebriques 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 frontiere de deux arbres de derivations de Gdistincts et de meme racine.

    I Un langage algebrique est (inheremment) ambigu si toute grammaire quilengendre 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 droitenon-ambigue.

    Automates et Langages Prepa Agreg 2011/2012, 47

  • Langages algebriques Automates a pile Analyse syntaxique

    Lemmes diteration

    Theoreme 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 unvn 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 Ntel que tout w LG (Y ) ayant au moins K lettres distinguees se factorise enw = uv avec , , (V T ) et

    I Y X, X uXv , X ,I soit , u, soit , v , contiennent des lettres distinguees, et

    I uv contient moins de K lettres distinguees.

    Automates et Langages Prepa Agreg 2011/2012, 48

  • Langages algebriques Automates a pile Analyse syntaxique

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

    I Le langage L1 = {anbncn | n 0} nest pas algebrique.

    I Consequence : La classe des langages algebriques nest close ni parintersection, ni par complementation.

    I Le langage L2 = {ambncmdn | n,m 0} nest pas algebrique.

    I Le langage L3 = {ambmcn | m, n 0} {ambncn | m, n 0} estinheremment ambigu.

    I Consequence : La classe des langages algebriques non ambigus nest pasclose par union.

    Automates et Langages Prepa Agreg 2011/2012, 49

  • Langages algebriques Automates a pile Analyse syntaxique

    Grammaires reduites

    Grammaire reduite

    Une grammaire algebrique G = (V ,T ,P, S) est reduite si toute variable X Vest

    I productive : LG (X ) 6= (w T LG (X )), etI accessible : S X avec , (T V ).

    Proposition

    Pour toute grammaire algebrique on peut construire une grammaire algebriquereduite equivalente.

    Automates et Langages Prepa Agreg 2011/2012, 50

  • Langages algebriques Automates a pile Analyse syntaxique

    Grammaires propres

    Grammaire propre

    Une grammaire algebrique G = (V ,T ,P, S) est propre si elle ne contient pas deregle de la forme X ou X Y pour X ,Y V .

    Proposition

    Pour toute grammaire algebrique G on peut construire une grammaire algebriquepropre qui engendre LG \ {}.

    Corollaire

    Le probleme du mot est decidable pour les grammaires algebriques.

    Automates et Langages Prepa Agreg 2011/2012, 51

  • Langages algebriques 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 Chomskysi P V (V 2 T {}).

    Proposition

    Pour toute grammaire algebrique on peut construire une grammaire algebriquesous forme normale de Chomsky equivalente.

    Automates et Langages Prepa Agreg 2011/2012, 52

  • Langages algebriques 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 ,I Greibach quadratique (FNGQ) si P V (T TV TV 2).

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

    Pour toute grammaire algebrique propre on peut construire une grammairealgebrique sous forme normale de Greibach quadratique equivalente.

    Preuve

    Automates et Langages Prepa Agreg 2011/2012, 53

  • Langages algebriques 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 langagealgebrique, 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 Prepa Agreg 2011/2012, 54

  • Langages algebriques Automates a pile Analyse syntaxique

    Theoreme de Chomsky et Schutzenberger

    Langages de Dyck

    On appelle langage de Dyck sur n paires de parentheses le langage Dn sur n ={a1, , an}{a1, , an} engendre par la grammaire Gn = ({S},n,Pn, S) ouPn est reduit a S a1Sa1S + + anSanS + .

    Theoreme (Chomsky et Schutzenberger) [Aut, p.92] [Car, p.100]

    Un langage L est algebrique si et seulement si il existe n N, K un langagerationnel et un morphisme alphabetique tels que L = (Dn K).

    Automates et Langages Prepa Agreg 2011/2012, 55

  • Langages algebriques Automates a pile Analyse syntaxique

    Problemes de decision

    Problemes decidables

    G = (V ,T ,P, S) grammaire algebrique

    I LG vide ? fini ou infini ?

    I LG contient w T ?

    Problemes indecidables

    L, L langages algebriques, R langage rationnel

    I L L = ? L = T ?I L = L ? L L ? R L ?I L rationnel ?

    I L ambigu ?

    I T \ L algebrique ?I L L algebrique ?

    Automates et Langages Prepa Agreg 2011/2012, 56

  • Langages algebriques Automates a pile Analyse syntaxique

    Retour sur le probleme du mot

    Probleme du mot [Car, p.184]

    On peut decider en temps cubique si un mot est engendre par une grammaireen forme normale de Chomsky.

    Principe : Pour w = a1 an, calcul recursif des Ei,j = {X | ai aj LG (X )}.I X Ei,i ssi (X , ai ) PI 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, fairellpour (X,a[i]) P faire E[i,i] := E[i,i] {X};pour 1 d n-1, fairellpour 1 i n-d, fairellllpour i k i+d, fairellllllpour (X,YZ) P, fairellllllllsi Y E[i,k] et Z E[k+1,i+d] alors E[i,i+d]:= E[i,i+d] {X};

    Automates et Langages Prepa Agreg 2011/2012, 57

  • Langages algebriques Automates a pile Analyse syntaxique

    Equations algebriques

    Systeme dequations algebriques

    Soit G = (V ,T ,P, S) une grammaire algebrique, avec V = {X1, ,Xn} pourensemble de variables. A G on associe S(G) le systeme dequations sur leslangages suivant :

    Li =X

    (Xi ,)P

    (L)

    Proposition

    I (LG (X1), , LG (Xn)) est la plus petite solution de S(G), etI si G est propre, (LG (X1), , LG (Xn)) est lunique solution propre deS(G).

    langages algebriques = solutions de systemes dequations polynomiales

    Automates et Langages Prepa Agreg 2011/2012, 58

  • Langages algebriques Automates a pile Analyse syntaxique

    Theoreme de Parikh

    Image commutative

    Limage commutative dun langage L T est L = {w | w L}, ou w denotelensemble des anagrammes de w .Deux langages L et L sont commutativement equivalents si L = L.

    Theoreme (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 Prepa Agreg 2011/2012, 59

  • Langages algebriques Automates a pile Analyse syntaxique

    Automates a pile

    Automate a pile

    A = (Q,, , , q0, 0,F ) ouI Q ensemble fini detats,

    I alphabet dentree,

    I alphabet de pile,

    I Q ( {}) Q fonction de transition.I (q0, 0) Q configuration initiale,I F Q ensemble detats finaux,

    A est temps-reel sil ne possede pas d-transitions.

    Configuration : (q, h) Q .Transition : (p, h)

    a (q, uh) pour (p, , a, q, u) .

    Langage accepte

    L(A) = {w | (q0, 0)w (qf , h) avec qf F}

    Automates et Langages Prepa Agreg 2011/2012, 60

  • Langages algebriques Automates a pile Analyse syntaxique

    Variantes dautomates a pile

    Differents modes dacceptation :

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

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

    I Pile vide et etat final L = {w | (q0, 0)w (q, ) avec q F}

    I Sommet de pile L = {w | (q0, 0)w (q, h) avec }

    Equivalence des modes dacceptation [Car, p.106]

    Pour tout automate a pile A avec acceptation par pile vide (resp. par pile videet etat final, resp. par sommet de pile) on peut construire un automate a pileA avec acceptation par etat final tel que L(A) = L(A).

    Automates et Langages Prepa Agreg 2011/2012, 61

  • Langages algebriques 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 pilequi laccepte.

    Preuve

    Corollaire

    I Tout automate a pile est equivalent a un automate a pile a un seul etat.

    I Tout automate a pile est equivalent a un automate a pile sans -transition.

    Automates et Langages Prepa Agreg 2011/2012, 62

  • Langages algebriques 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(q0, h0)

    a1 (q1, h1) an (qn, hn) il existe k < n tel que pour tout 0 i < n

    I i < k = |hi | |hi+1|, etI i k = |hi | |hi+1|.

    Informellement, pour toute execution les variations de la hauteur de pile suiventdeux 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 quilaccepte.

    Automates et Langages Prepa Agreg 2011/2012, 63

  • Langages algebriques 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 :

    H = {h | w q Q t.q. (q0, 0)w (q, h)}.

    Theoreme [Car, p.117]

    Pour tout automate a pile, le langage de pile est rationnel.

    Automates et Langages Prepa Agreg 2011/2012, 64

  • Langages algebriques 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 I pour tout a {} il y a au plus une transition (p, ) a (q, h), etI sil existe une transition (p, )

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

    a (q, h) pour a .

    Remarque : dans un automate a pile deterministe il peut y avoir plusieursexecutions sur un meme mot (-transitions a la fin).

    Automates et Langages Prepa Agreg 2011/2012, 65

  • Langages algebriques 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 peutconstruire 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 parceque A nest pas complet.

    I A deterministe peut avoir des executions acceptantes et non acceptantessur une entree donnee.

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

    Tout langage algebrique deterministe est non ambigu.

    Automates et Langages Prepa Agreg 2011/2012, 66

  • Langages algebriques 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 ayantau moins K lettres distinguees se factorise en w = uv avec

    I pour tout , n unvn L n unvn L,I soit , u, soit , v , contiennent des lettres distinguees, et

    I uv contient moins de K lettres distinguees.

    {anbn | n > 0} {anb2n | n > 0} est non ambigu mais pas deterministe

    Automates et Langages Prepa Agreg 2011/2012, 67

  • Langages algebriques Automates a pile Analyse syntaxique

    Problemes de decision

    Problemes decidables [HU, p.246]

    L, L langages deterministes, R langage rationnel.

    I L = R ? R L ? L rationnel ?I L = L ?

    Problemes indecidables [HU, p.247]

    L langage algebrique

    I L deterministe ?

    L, L langages deterministes

    I L L = ?I L L ?I L L algebrique ?I L L deterministe ? L L deterministe ?

    Automates et Langages Prepa Agreg 2011/2012, 68

  • Langages algebriques Automates a pile Analyse syntaxique

    Analyse syntaxique

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

    But : Verifier quune suite de lexemes est syntaxiquement correcte et latransformer en arbre de syntaxe abtraite.

    Lensemble des programmes syntaxiquement corrects est le langage dunegrammaire algebrique.

    I Les terminaux sont les lexemes ;

    I savoir si un programme est syntaxiquement correct revient a resoudre leprobleme du mot ;

    I un arbre de derivation est un arbre de syntaxe abstraite.

    Automates et Langages Prepa Agreg 2011/2012, 69

  • Langages algebriques 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 estlautomate a pile a un etat, dalphabet de pile = V T , de transitions

    I expand : {(X , , ) | (X , ) P}I 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 lexemes est lue de gauche a droite

    I Leftmost derivation: on construit une derivation gauche

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

    Automates et Langages Prepa Agreg 2011/2012, 70

  • Langages algebriques Automates a pile Analyse syntaxique

    Premier

    Fonction Premier

    I Soit w T . Premier(w) =

    (a si w = aw

    sinon.

    I Soit L T . Premier(L) = {Premier(w) | w L}I 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},I X V , F0(X ) = et

    Fi+1(X ) =S

    (X ,1n)P Premier(Fi (1) Fi (n))

    Automates et Langages Prepa Agreg 2011/2012, 71

  • Langages algebriques Automates a pile Analyse syntaxique

    Suivant

    Fonction Suivant

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

    S{Premier() | S X}.

    Calcul iteratif de Suivant. Pour X V et i 0 on pose :I F0(S) = {} et F0(X ) = si X 6= SI Fi+1(X ) = Fi (X )

    S(Y ,X)P Premier(Fi (Y )).

    Automates et Langages Prepa Agreg 2011/2012, 72

  • Langages algebriques 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 derivationS X, pour toutes regles 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.

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

    I 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 Prepa Agreg 2011/2012, 73

  • Langages algebriques 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 quiregarde une lettre a lavance pour savoir quelle regle dexpansion appliquer.

    Proposition

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

    I Lanalyseur LL(1) peut etre transforme en un automate a pile deterministe.

    Automates et Langages Prepa Agreg 2011/2012, 74

  • Langages algebriques 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 reglesX et X avec 6= on a :

    Premierk(Suivantk(X )) Premierk(Suivantk(X )) = .

    Table danalyse fortement LL(k)

    Pour chaque X V et w Tkbla 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 ex-pand/check qui regarde k lettres a lavance pour savoir quelle regle dexpansionappliquer.

    Proposition

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

    I Lanalyseur LL(k) peut etre transforme en un automate a pile deterministe.

    Automates et Langages Prepa Agreg 2011/2012, 75

  • Langages algebriques 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 estlautomate a pile a un etat, generalise, dalphabet de pile = V T , de transi-tions

    I shift : {(, a, a) | a T}I reduce : {(, ,X ) | (X , ) P}

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

    Grammaires LR(0)

    I Left to right scanning: la suite de lexemes est lue de gauche a droite

    I Rightmost derivation: on construit une derivation droite

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

    Automates et Langages Prepa Agreg 2011/2012, 76

  • Langages algebriques Automates a pile Analyse syntaxique

    Grammaires LR(0)

    Conflits

    I (X , ,w , av) est un conflit shift/reduce sil existe (V T ) et deuxexecutions dans lautomate shift/reduce

    X w S et a a v S .

    I (X , , v ,Y , ,w) est un conflit reduce/reduce sil existe , (V T )et deux executions dans lautomate shift/reduce

    X v S et Y w S , avec = .

    Grammaire augmentee : Pour G = (V ,T ,P, S), la grammaire augmentee estG = (V {S },T ,P {(S , S)}, S ).

    Grammaire LR(0)

    Une grammaire est LR(0) si sa grammaire augmentee na aucun conflit.

    Automates et Langages Prepa Agreg 2011/2012, 77

  • Langages algebriques 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 unautomate fini (Q, , {q0},F ) sur lalphabet V T ou :

    I Q est lensemble des items de G

    I q0 = (S, S)

    I F = {(X , ) | (X , ) P}I contient les transitions suivantes

    I (X , Y) Y (X , Y )I (X , a) a (X , a )I (X , Y) (Y , ) pour (Y , ) P

    Automates et Langages Prepa Agreg 2011/2012, 78

  • Langages algebriques Automates a pile Analyse syntaxique

    Analyseur LR(0)

    (Q, , {q0},F ) automate des items et ({0, n},, {0},F ) son determinise.

    Construction de la table des actions et branchements

    Pour chaque i {0, n}bla pour chaque X tel que (X , ) ibla bla mettre reduce(X , ) dans les cases [i , a] pour a T {}bla pour chaque a Tbla bla mettre shift((i , a)) dans la case [i , a]bla pour chaque X Vbla bla mettre goto((i ,X )) dans la case [i ,X ]bla si (S , 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 dontles choix shift/reduce et reduce/reduce sont guides par la table des actions.

    Proposition

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

    I Lanalyseur LR(0) peut etre transforme en un automate a pile deterministe.

    Automates et Langages Prepa Agreg 2011/2012, 79

    Automates finisLangages reconnaissablesNotions de baseAutomates finis et langages reconnaissablesAutomates dterministesProprits et variantesProblmes de dcisionProprits de cltureCritres de reconnaissabilit

    Langages rationnelsExpressions rationnelles et langages rationnelsThorme de KleeneDes automates finis aux expressions rationnellesDes expressions rationnelles aux automates finis

    MinimisationAutomate des rsiduelsCongruence de Nerode

    ApplicationsRecherche de motifsAnalyse lexicaleDcidabilit de l'arithmtique de PresburgerClassification

    Automates pileLangages algbriquesGrammaires algbriquesLemme d'OgdenFormes normalesProprits de cltureProblmes de dcisionquations algbriques

    Automates pileAutomates pile et langages associsLien avec les grammaires algbriquesLangage de pileLangages dterministes

    Analyse syntaxiqueAnalyse descendanteAnalyse ascendante