Langages Slides
Langages Slides
Langages Slides
Paul Gastin
LSV (Cachan)
[email protected]
Magist`ere 2006
1/149
Plan
1
Introduction
Langages reconnaissables
Fonctions s
equentielles
Automates darbres
Grammaires
Langages alg
ebriques
Automates `
a pile
Analyse syntaxique
2/149
Motivations
Definition :
1. Description et analyse (lexicale et syntaxique) des langages (programmation,
naturels, . . . )
2. Mod`eles de calcul
3. Abstractions mathematiques simples de phenom`enes complexes dans le but de
4. Types de donnees
3/149
Plan
Introduction
2
Langages reconnaissables
Mots
Langages
Automates deterministes
Automates non deterministes
Automates avec -transitions
Proprietes de fermeture
Langages rationnels
Crit`eres de reconnaissabilite
Minimisation
Morphismes et congruences
Fonctions s
equentielles
Automates darbres
4/149
Bibliographie
[1] Luc Albert, Paul Gastin, Bruno Petazzoni, Antoine Petit, Nicolas Puech et
Pascal Weil.
Cours et exercices dinformatique.
Vuibert, 1998.
[2] Jean-Michel Autebert.
Theorie des langages et des automates.
Masson, 1994.
[3] John E. Hopcroft et Jeffrey D. Ullman.
Introduction to automata theory, languages and computation.
Addison-Wesley, 1979.
[4] Jacques Sakarovitch.
ements de theorie des automates.
El
Vuibert informatique, 2003.
[5] Jacques Stern.
Fondements mathematiques de linformatique.
Mc Graw Hill, 1990.
5/149
Mots
A ou : alphabet (ensemble fini).
u : mot = suite finie de lettres.
: concatenation associative.
ou 1 : mot vide, neutre pour la concatenation.
( , ) : monode libre engendre par .
|u| : longueur du mot u.
| | : N est le morphisme defini par |a| = 1 pour a .
|u|a : nombre de a dans le mot u.
u
: miroir du mot u.
6/149
Mots
Ordres partiels :
u prefixe de v si u , v = uu
u suffixe de v si u , v = u u
u facteur de v si u , u , v = u uu
u sous-mot de v si v = v0 u1 v1 u1 un vn avec ui , vi et u = u1 u2 un
Theor`eme : Higman
Lordre sous-mot est un bon ordre, i.e.
(de toute suite infinie on peut extraire une sous-suite infinie croissante)
(ou tout ensemble de mots a un nombre fini delements minimaux)
7/149
Langages
Langage = sous-ensemble de .
Exemples.
8/149
Langages
n+1
n
n
Iteration : L0 = {},
S L n =+L SL = L n L ,
L = n0 L , L = n>0 L .
Exemples : n , , (2 ) .
Quotients : K 1 L = {v | u K, u v L}
L K 1 = {u | v K, u v L}
9/149
Automates d
eterministes
Definition : Automate deterministe
A = (Q, , i, F )
Q ensemble fini detats, i Q etat initial, F Q etats finaux,
: Q Q fonction de transition (totale ou partielle).
Exemples.
u
qn
Calcul de A sur un mot u = a1 an : q0
a
n
1
qn
q1 qn1
q0
Automates d
eterministes
Definition : 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 .
11/149
Automates non d
eterministes
Exemple : automate non deterministe pour {aba}
n
1
qn avec
q1 qn1
Calcul de A sur un mot u = a1 an : q0
(qi1 , ai , qi ) T pour tout 0 < i n.
Langage accepte (reconnu) par A :
L(A) = {u | i
f calcul de A avec i I et f F }.
12/149
Automates non d
eterministes
Theor`eme : Determinisation
Soit A un automate non deterministe. On peut construire un automate deterministe
B qui reconnat le meme langage (L(A) = L(B)).
Preuve
Automate des parties
Exemple : automate deterministe pour {aba}
On appelle determinise de A lautomate des parties emonde.
Exercices :
1. Donner un automate non deterministe avec n etats pour L = an2 .
2. Montrer que tout automate deterministe reconnaissant ce langage L a au
moins 2n1 etats.
3. Donner un automate non deterministe `a n etats tel que tout automate
deterministe reconnaissant le meme langage a au moins 2n 1 etats.
13/149
Automates non d
eterministes
Un automate (D ou ND) est complet si p Q, a , (p, a) 6= .
On peut toujours completer un automate.
Un automate (D ou ND) est emonde si tout etat q Q est
Corollaire :
Soit A un automate.
14/149
n
1
D
ecision
Presque tout est decidable sur les langages reconnaissables donnes par des
automates.
Definition :
Probl`eme du vide : etant donne un automate fini A, decider si L(A) = .
Preuve
Cest de laccessibilite.
16/149
Propri
et
es de fermeture
Op
erations ensemblistes
Proposition :
La famille Rec( ) est fermee par les operations ensemblistes (union, complement,
. . . ).
Preuve
Union : construction non deterministe.
Intersection : produit dautomates (preserve le determinisme).
Complement : utilise la determinisation.
Corollaire :
On peut decider de legalite ou de linclusion de langages reconnaissables.
Plus precisement, soient L1 , L2 Rec( ) donnes par deux automates A1 et A2 .
On peut decider si L1 L2 .
17/149
Propri
et
es de fermeture
Op
erations li
ees `
a la concat
enation
Proposition :
Rec( ) est fermee par concatenation et iteration.
Concat
enation :
Methode 1 : union disjointe des automates et ajout de transitions.
Methode 2 : fusion detats.
On suppose que les automates ont un seul etat initial sans transition entrante et
un seul etat final sans transition sortante.
It
eration :
Methode 1 : ajout de transitions. Ajouter un etat pour reconnatre le mot vide.
Methode 2 : ajout d-transitions.
18/149
Propri
et
es de fermeture
Si L , on note
Pref(L) = {u | v , uv L},
Suff(L) = {v | u , uv L},
Fact(L) = {v | u, w , uvw L}.
Proposition :
Rec( ) est fermee par prefixe, suffixe, facteur.
Preuve
Modification des etats initiaux et/ou finaux.
19/149
Propri
et
es de fermeture
Proposition :
La famille Rec( ) est fermee par quotients gauches et droits :
Soit L Rec( ) et K arbitraire.
Les langages K 1 L et L K 1 sont reconnaissables.
Preuve
Modification des etats initiaux et/ou finaux.
Exercice :
Montrer que si de plus K est reconnaissable, alors on peut effectivement calculer
les nouveaux etats initiaux/finaux.
20/149
Propri
et
es de fermeture
Morphismes
Soient A et B deux alphabets et f : A B un morphisme.
Pour L A , on note f (L) = {f (u) B | u L}.
Pour L B , on note f 1 (L) = {u A | f (u) L}.
Proposition :
La famille des langages reconnaissables est fermee par morphisme et morphisme
inverse.
1. Si L Rec(A ) et f : A B est un morphisme alors f (L) Rec(B ).
2. Si L Rec(B ) et f : A B est un morphisme alors f 1 (L) Rec(A ).
Preuve
Modification des transitions de lautomate.
21/149
Propri
et
es de fermeture
Definition : Substitutions
Une substitution est definie par une application : A P(B ).
Elle setend en un morphisme : A P(B ) defini par
() = {} et
(a1 an ) = (a1 ) (an ).
S
Pour L A , on note (L) = uL (u).
Pour L B , on note 1 (L) = {u A | (u) L 6= }.
Une substitution est rationnelle (ou reconnaissable) si elle est definie par une application : A Rec(B ).
22/149
Propri
et
es de fermeture
Proposition :
La famille des langages reconnaissables est fermee par substitution rationnelle et
substitution rationnelle inverse.
1. Si L Rec(A ) et : A Rec(B ) est une substitution rationnelle alors
(L) Rec(B ).
2. Si L Rec(B ) et : A Rec(B ) est une substitution rationnelle alors
1 (L) Rec(A ).
Preuve
1. On remplace des transitions par des automates.
2. Plus difficile.
23/149
Langages rationnels
Syntaxe pour representer des langages.
Soit un alphabet et une copie de .
Une ER est un mot sur lalphabet {(, ), +, , , }
Definition : Syntaxe
Lensemble des ER est defini par
B : et a pour a sont des ER,
I : Si E et F sont des ER alors (E + F ), (E F ) et (E ) aussi.
24/149
Langages rationnels
Definition : Semantique
On definit L : E P( ) par
B : L() = et L(a) = {a} pour a ,
25/149
Langages rationnels
Definition :
Deux ER E et F sont equivalentes (note E F ) si L(E) = L(F ).
Exemples : commutativite, associativite, distributivite, . . .
Peut-on trouver un syst`eme de r`egles de reecriture caracterisant lequivalence des
ER ?
Oui, mais il nexiste pas de syst`eme fini.
Comment decider de lequivalence de deux ER ?
On va utiliser le theor`eme de Kleene.
Abus de notation :
On ne souligne pas les lettres de : ((a + b) ).
On enl`eve les parenth`eses inutiles : (aa + bb) + (aab) .
On confond langage rationnel et expression rationnelle.
26/149
Langages rationnels
Theor`eme : Kleene, 1936
Rec( ) = Rat( )
Preuve
: les langages et {a} pour a sont reconnaissables et la famille
Rec( ) est fermee par union, concatenation, iteration.
: Algorithme de McNaughton-Yamada.
Corollaire :
Lequivalence des expressions rationnelles est decidable.
Preuve
Il suffit de linclusion Rat( ) Rec( ).
27/149
Crit`
eres de reconnaissabilit
e
Y a-t-il des langages non reconnaissables ?
Oui, par un argument de cardinalite.
Comment montrer quun langage nest pas reconnaissable ?
Exemples.
1. L1 = {an bn | n 0},
2. L2 = {u | |u|a = |u|b },
3. L3 = L2 \ ( (a3 + b3 ) )
Preuves : `a la main (par labsurde).
28/149
Crit`
eres de reconnaissabilit
e
Lemme : iteration
Soit L Rec( ). Il existe N 0 tel que pour tout w L,
Preuve
Sur lautomate qui reconnat L.
Application `a L1 , L2 , L3 et aux palindromes L4 = {u | u = u
}.
29/149
Crit`
eres de reconnaissabilit
e
Le crit`ere (2) est strictement plus fort que le crit`ere (1) :
K1 = {bp an | p > 0 et n est premier} {a}
satisfait (1) mais pas (2).
Le crit`ere (3) est strictement plus fort que le crit`ere (2) :
K2 = {(ab)n (cd)n | n 0} {aa, bb, cc, dd, ac}
satisfait (2) mais pas (3).
Le crit`ere (3) nest pas suffisant :
K3 = {udv | u, v {a, b, c} et soit u 6= v soit u ou v contient un carre}
satisfait (3) mais nest pas reconnaissable.
30/149
Crit`
eres de reconnaissabilit
e
Pour montrer quun langage nest pas reconnaissable, on peut aussi utiliser les
proprietes de cl
oture.
Exemples : Sachant que L1 nest pas reconnaissable.
L 2 a b = L 1 .
Donc L2 nest pas reconnaissable.
Soit f : defini par f (a) = aab et f (b) = abb.
On a f 1 (L3 ) = L2.
Donc L3 nest pas reconnaissable.
L5 = {u | |u|a 6= |u|b } = L2 .
Donc L5 nest pas reconnaissable.
31/149
Minimisation
32/149
Minimisation
Definition : Morphismes dautomates DC
Soient A = (Q, , i, F ) et A = (Q , , i , F ) deux automates deterministes complets. Une application : Q Q est un morphisme si
a
Q
Q
q Q, a , ((q, a)) = ((q), a),
(i) = i ,
a
1 (F ) = F , i.e., q F (q) F .
Q
Q
Minimisation
Definition : Congruence sur les automates
Soit A un automate DC. Une relation dequivalence sur Q est une congruence si
Le quotient de A par est A = (Q/, , [i], F/) o`u est definie par
([p], a) = [(p, a)].
Remarque : [] : A A/ est un morphisme surjectif.
Proposition :
Soient A et A deux automates DC. Il existe un morphisme surjectif : A A si
et seulement si A est isomorphe `a un quotient de A. Dans ce cas, on note A A
et on a L(A) = L(A ).
Remarque : est un ordre partiel sur les automates DC.
But : Soit L Rec . Montrer quil existe un unique (`a isomorphisme pr`es)
automate minimal pour parmi les automates DC reconnaissant L.
34/149
Minimisation
Definition : Equivalence
de Nerode
Soit A = (Q, , i, F ) un automate DC.
Pour p Q, on note L(A, p) = {u | (p, u) F }.
Lequivalence de Nerode sur Q est definie par
pq
ssi
Proposition :
Lequivalence de Nerode est une congruence.
Lautomate quotient A est appele automate de Nerode.
On a L(A) = L(A ) (Proposition 3)
On va voir que lautomate de Nerode est minimal (si Q = Acc(i)).
Probl`eme : comment le calculer efficacement ?
35/149
Minimisation
Pour n 0, on note n = 0 1 n et on definit lequivalence n sur
Q par
p n q
ssi
L(A, p) n = L(A, q) n .
Proposition : 5
Minimisation
Definition : Residuels
Soient u et L . Le residuel de L par u est le quotient u1 L = {v |
uv L}.
QL = {u1 L | u },
Theor`eme :
L est reconnaissable ssi L a un nombre fini de residuels.
37/149
Theor`eme :
Minimisation
1. Lautomate des residuels de L est minimal pour lordre quotient () parmi les
automates DCA qui reconnaissent L.
2. Soit A un automate DC reconnaissant L avec un nombre minimal detats. A
est isomorphe `a R(L).
3. On calcule lautomate minimal de L avec lequivalence de Nerode `a partir de
nimporte quel automate DCA qui reconnat L.
Exercice :
Calculer lautomate minimal par lalgorithme dHopcroft de raffinement de partitions
en O(n log(n)) (lalgo naf est en O(n2 ) avec n = |Q|).
38/149
Morphismes
Definition : Reconnaissance par morphisme
Proposition :
Le monode de transitions de A reconnat L(A).
39/149
Morphismes
Theor`eme :
Soit L . L est reconnaissable par morphisme ssi L est reconnaissable par
automate.
Corollaire :
Rec( ) est fermee par morphisme inverse.
Exemple :
Si L est reconnaissable alors
Exercices :
1. Montrer que Rec( ) est fermee par union, intersection, complementaire.
2. Montrer que Rec( ) est fermee par quotients.
Si L Rec( ) et K alors K 1 L et LK 1 sont reconnaissables.
3. Montrer que Rec( ) est fermee par concatenation (plus difficile).
40/149
Congruences
Definition :
Soit L et une congruence sur .
Le langage L est sature par si u , v L, u v implique u L.
Theor`eme :
Soit L . L est reconnaissable ssi L est sature par une congruence dindex fini.
si
x, y , xuy L xvy L.
Theor`eme :
Soit L .
L sature L.
L est la plus grossi`ere congruence qui sature L.
L est reconnaissable ssi L est dindex fini.
41/149
Monoide syntaxique
Definition : Monoide syntaxique
Soit L . ML = / L .
Theor`eme :
Soit L .
M
de) tout monode qui reconnat L.
L divise (est quotient dun sous-mono
Corollaire :
On peut effectivement calculer le monode syntaxique dun langage reconnaissable.
42/149
Ap
eriodiques et sans
etoile
Definition : Sans etoile
La famille des langages sans etoile est la plus petite famille qui contient les langages
finis et qui est fermee par union, concatenation et complementaire.
Exemple : Le langage (ab) est sans etoile.
Definition : Aperiodique
Theor`eme : Schutzenberger
Un langage est sans etoile si et seulement si son monode syntaxique est aperiodique.
Exemple : Le langage (aa) nest pas sans etoile.
Exercice :
Montrer que le langage ((a + cb a)c b) est sans etoile.
43/149
Plan
Introduction
Langages reconnaissables
3
Fonctions sequentielles
Definitions et exemples
Composition
Normalisation
Residuels et minimisation
Automates darbres
Grammaires
Langages alg
ebriques
Automates `
a pile
44/149
Bibliographie
45/149
Automates s
equentiels purs
Definition : Automates sequentiels purs (Mealy machine)
A = (Q, A, B, q0 , , ) o`u
46/149
fonctions s
equentielles pures
Definition : fonctions sequentielles pures
Une fonction f : A B est sequentielle pure sil existe un automate sequentiel
pur A qui la realise : f = [[A]].
Exemples :
1. Transformation dun texte en majuscules.
2. Remplacement dune sequence despaces ou tabulations par un seul espace.
3. Codage et decodage avec le code prefixe definie par
a 7 0000
b 7 0001
c 7 001
d 7 010
e 7 011
f 7 10
g 7 11
4. Division par 3 dun entier ecrit en binaire en commencant par le bit de poids
fort. Quen est-il si on commence avec le bit de poids faible ?
47/149
Automates s
equentiels
Definition : Automates sequentiels
A = (Q, A, B, q0 , , , m, ) o`
u
A = (Q, A, B, q , , ) est un automate s
equentiel pur,
0
Exemples :
1. La fonction f : A A definie par f (u) = u(ab)1 .
48/149
fonctions s
equentielles
Lemme :
Une fonction sequentielle peut etre realisee par un automate sequentiel ayant un
prefixe initial vide (m = ).
49/149
Produit en couronne
Definition : Produit en couronne
Soient A = (Q, A, B, q0 , , , m, ) et A = (Q , B, C, q0 , , , m , ) deux automates sequentiels.
Le produit en couronne A A = (Q , A, C, q0 , , , m , ) est defini par
Composition
Lemme : Extension `a A
Pour tout u A , on a
((p, p ), u) = ((p, u), (p , (p, u))),
Theor`eme : Composition
Soient f : A B et g : B C deux fonctions partielles.
1. Si f et g sont sequentielles alors g f : A C est aussi sequentielle.
2. Si f et g sont sequentielles pures alors g f est aussi sequentielle pure.
Preuve
1. Si f et g sont realisees par A et A alors g f est realisee par A A.
2. Si A et A sont purs alors A A est pur.
51/149
Fonct. s
equentielles et lang. rationnels
Definition : Fonction caracteristique
Soit L A un langage. La fonction caracteristique de L est la fonction totale
1L : A {0, 1} definie par 1L (u) = 1 si et seulement si u L.
Theor`eme :
Un langage L A est rationnel si et seulement si sa fonction caracteristique 1L
est sequentielle.
B {0}
Definition : 0 : element maximal et absorbant.
Soit 0
/ B un nouvel element.
On etend la concatenation de B en faisant de 0 un element absorbant :
w 0 = 0 w = 0 pour tout w B {0}.
On etend lordre prefixe de B en faisant de 0 un element maximal :
w 0 pour tout w B {0}.
Tout sous ensemble X B {0} admet un plus grand prefixe commun,
i.e., une borne inferieure pour lordre
V prefixe.
Cette borneVinferieure est notee X.
Noter que = 0.
53/149
Preuve
Il suffit de completer lautomate A = (Q, A, B, q0 , , , m, ) realisant f en ajoutant
au besoin un etat puits, et de remplacer par .
Dans la suite, on confondra f et f.
54/149
Normalisation
Exemple :
Donner un automate sequentiel realisant la fonction f : A A definie par
f (a2n b) = (ab)n a.
Cet automate devra sortir les lettres du resultat le plus rapidement possible.
Proposition : Normalisation
Tout automate sequentiel emonde est equivalent `a un automate sequentiel emonde
et normalise ayant les memes etats et la meme fonction de transition.
Proposition : Effectivite
Etant
donne un automate sequentiel A, on peut calculer les mp en temps quadratique.
55/149
S
equentielle et s
equentielle pure
Definition :
Une fonction partielle f : A B preserve les prefixes si
son domaine est pr
efixiel : u v et v dom(f ) implique u dom(f ),
Proposition :
1. Une fonction sequentielle pure preserve les prefixes.
2. Soit f : A B une fonction sequentielle. Si f () = et f preserve les
prefixes alors f est sequentielle pure.
Preuve
Lautomate normalise dune fonction sequentielle f qui preserve les prefixes et telle
que f () = est un automate sequentiel pur.
56/149
R
esiduels
Definition : Residuels
Soit f : A B {0} une fonction totale et soit u A .
V
Le residuel fu : A B {0} est defini par fu (v) = ( f (uA ))1 f (uv)
avec la convention w1 0 = 0 pour tout w B {0}.
V
f (uA ) represente tout ce quon peut sortir si on sait que la donnee commence
par u. Le residuel fu (v) est donc ce qui reste `a sortir si la donnee est uv.
Exemple :
1. Calculer les residuels de la fonction f : A A {0} definie par
f (w) = w(ab)1 .
2. Calculer les residuels de la fonction f : A A definie par f (w) = ww.
3. Calculer les residuels de la fonction multiplication par 5 o`u les entiers sont
codes en binaire en commencant avec le bit de poids faible.
57/149
R
esiduels
Lemme :
Soit A = (Q, A, B, q0 , , , m, ) un automate normalise et complet.
58/149
Automate des r
esiduels
Reciproquement, Supposons Q = {fu | u A } fini.
Lautomate des residuels est A = (Q, A, B, q0 , , , m, ) o`
u
V
q = f
f (A ),
0
et m =
(f , a) = f
u
ua ,
V
(f , a) =
fu (aA ),
u
(f ) = f ().
u
u
Lemme :
V
1. Soient u, v, w A . On a fuv (w) = ( fu (vA ))1 fu (vw).
2. La fonction de transition est bien definie et (fu , v) = fuv .
V
3. Soient u, v A . On a (fu , v) = fu (vA ).
4. Soit u A . On a fu = [[Afu ]].
5. f = [[A]].
6. Lautomate des residuels est normalise, accessible et complet.
59/149
Minimisation
Theor`eme : Automate minimal
Soit f : A B {0} une fonction sequentielle.
Lautomate des residuels de f , note Rf , est minimal parmi les automates normalises
et complets qui realisent f .
normaliser lautomate
quotienter lautomate par lequivalence definie par p q si [[Ap ]] = [[Aq ]].
p 0 q si (p) = (q).
p n+1 q si p n q et a A, (p, a) n (q, a) et (p, a) = (q, a).
Exemple :
Minimiser lautomate naturel de f : A A {0} definie par f (w) = w(ab)1 .
60/149
Plan
Introduction
Langages reconnaissables
Fonctions s
equentielles
4
Automates darbres
Arbres
Automates darbres
Termes
Ascendant / Descendant
Determinisme
Lemme diteration
Grammaires
Langages alg
ebriques
61/149
R
ef
erence
TATA
Tree Automata Techniques and Applications
Hubert Comon, Max Dauchet, Remi Gilleron, Florent Jacquemard,
Denis Lugiez, Sophie Tison, Marc Tommasi.
http://www.grappa.univ-lille3.fr/tata/
62/149
Arbres
Definition : Arbres
Soit Ap = {d1 , . . . , dp } un alphabet ordonne d1 dp .
Un arbre etiquete dans et darite (au plus) p est une fonction partielle t : Ap
dont le domaine est un langage dom(t) Ap
Exemples :
1. Arbre representant lexpression logique
((x y) (y z)) (z x)
2. Arbre representant le programme
lire a; lire b; q := 0; r := a;
Tant que b r faire
q := q+1; r := r-b
Fin tant que
63/149
Arbres
Definition : Terminologie
La racine de larbre est le mot vide dom(t).
Un nud de larbre est un element u dom(t).
Une feuille de larbre est un nud u dom(t) tel que ud1
/ dom(t).
La fronti`ere Fr(t) (ou mot des feuilles) de larbre t est la concatenation des etiquettes
des feuilles de t.
Larite dun nud u dom(t) est le plus grand entier k tel que udk dom(t)
(k = 0 si u est une feuille).
Les fils dun nud u dom(t) darite k sont les nuds ud1 , . . . , udk dom(t).
64/149
Automates darbres
Definition : Automate
Un automate darbres est un quadruplet A = (Q, , , F ) o`u
Q est un ensemble fini d
etats
65/149
Automates darbres
66/149
Termes
Definition :
F0 X T (F, X ),
si f Fn (n 1) et t1 , . . . , tn T (F, X ) alors f (t1 , . . . , tn ) T (F, X )
Termes
68/149
Arbres et termes
Un terme est un arbre
Un terme peut etre vu comme un arbre t etiquete dans F X tel que
si u dom(t) et t(u) F
e n.
n alors u est darit
Exemples :
1. Soit F un ensemble fini de symboles de fonctions avec arites et X un
ensemble fini de variables. Le langage darbres T (F , X ) est reconnaissable.
2. Considerons F2 = {, }, F1 = {}, F0 = {, } et X = .
Lensemble des formules closes du calcul propositionnel qui sevaluent `a vrai
est reconnaissable.
3. Considerons F2 = {, }, F1 = {}, F0 = {, } et X = {p1 , . . . , pn } fini.
Lensemble des formules satisfaisables du calcul propositionnel est
reconnaissable.
69/149
Arbres et termes
70/149
Substitutions
Definition :
(xi ) = ti pour 1 i n,
(f ) = f pour f F0 X \ {x1 , . . . , xn }
(f (s1 , . . . , sk )) = f ((s1 ), . . . , (sk )) pour f Fk , k 1.
Vision ascendante
Definition : calcul ascendant
Soit A = (Q, , , F ) un automateSdarbres.
On voit comme une fonction : p Qp 2Q .
Letiquetage dun calcul est construit `a partir des feuilles en remontant vers la racine.
Exemples :
Qp Q
Exercice :
Parmi les langages reconnaissables vus precedemment, quels sont ceux qui sont
deterministes ascendants ?
72/149
Vision descendante
Exemples :
1. Instances du terme s = f (g(x), f (y, a)) T (F , X ).
Exercice :
Parmi les langages reconnaissables vus precedemment, quels sont ceux qui sont
deterministes descendants ?
73/149
Automates d
eterministes
Theor`eme : Determinisation
Soit A un automate darbres. On peut effectivement construire un automate
deterministe ascendant B tel que L(A) = L(B).
Theor`eme : Cloture
La classe des langages darbres reconnaissables est effectivement close par union,
intersection et complementaire.
Proposition :
La classe des langages darbres reconnaissables par un automate deterministe descendant est strictement incluse dans la classe des langages darbres reconnaissables.
Exemple : le langage {f (a, b), f (b, a)} nest pas deterministe descendant.
74/149
Definition : -transitions
75/149
Concat
enation darbres
Definition : Arbre `a trou
Un -arbre `a trou t est un ( {2})-arbre ayant un unique noeud etiquete 2 et ce
noeud doit etre une feuille : t : A {2}, t1 (2) = {u} et u est une feuille.
On note T2 () lensemble des -arbres `a trou.
Definition : Concatenation
Soit t un -arbre avec un trou en u et soit t un -arbre (avec ou sans trou). La
concatenation t t est le -arbre((avec ou sans trou) defini par
t(v)
si u 6 v
v 7 1
t (u v) si u v
Lensemble T2 () est un monode avec comme element neutre 2.
Exemple :
Soit t1 larbre
et t2 larbre
a 2 b
a
b
Le langage L = t1 t2 est reconnaissable.
Remarque : le langage Fr(L) des mots de feuilles de L est {an bn | n > 0}.
76/149
Lemme dit
eration
Lemme : iteration (pumping) pour les termes
Soit L un langage darbres reconnaissable.
n 0, t L, si H(t) > n alors t1 , t2 T2 (), t3 T () tels que
t 6= 2,
t = t1 t2 t3 , t1 (t2 ) t3 L,
2
Exemples :
77/149
Congruences
Definition :
Soient a et t1 , . . . , tn T (). Larbre t = a(t1 , . . . , tn ) est defini par
Sn
dom(t) = {}
i=1 dom(ti ),
Definition : Congruence
Une relation dequivalence sur Tp () est une congruence si pour tous a , et
t1 , . . . , tn , s1 , . . . , sn Tp () avec n p on a
(1 i n, si ti ) = a(s1 , . . . , sn ) a(t1 , . . . , tn )
Proposition :
Une relation dequivalence sur Tp () est une congruence si et seulement si pour
tout r Tp,2 () et tous s, t Tp (), on a s t implique r s r t.
78/149
Congruence syntaxique
Theor`eme : Myhill-Nerode
Soit L Tp (). Les conditions suivantes sont equivalentes :
1. L est reconnaissable,
2. L est sature par une congruence dindex fini,
79/149
Automate minimal
Definition :
Soit L Tp (). Lautomate AL = (QL , , L , FL ) est defini par :
Q
equivalences pour L ,
L est lensemble des classes d
(on note simplement [t] la classe dequivalence de t pour L )
80/149
Equivalence
de Nerode
Definition :
Soit A = (Q, , , F ) un automate DAC reconnaissant L Tp (). On definit les
equivalences et (n )n0 sur Q par :
u Aq = (Q, , , {q})
q q si L(Aq ) = L(Aq ) o`
q 0 q si q, q F ou q, q
/F
Proposition :
Soit A = (Q, , , F ) un automate DAC reconnaissant L Tp ().
T
1. = n0 n = |Q| .
2. = L .
3. AL est le quotient de A par .
81/149
Exercices
Exercice : Morphisme
Montrer que L T (F ) est reconnaissable ssi il existe une F -alg`ebre finie A(F )
telle que L = 1 ((L)) o`u : T (F ) A(F ) est le morphisme canonique.
82/149
Plan
Introduction
Langages reconnaissables
Fonctions s
equentielles
Automates darbres
5
Grammaires
Type 0 : generale
Type 1 : contextuelle (context-sensitive)
Type 2 : hors contexte (context-free, algebrique)
Grammaires lineaires
Hierarchie de Chomsky
Langages alg
ebriques
Automates `
a pile
83/149
Bibliographie
[9] Jean-Michel Autebert.
Theorie des langages et des automates.
Masson, 1994.
[10] Jean-Michel Autebert, Jean Berstel et Luc Boasson.
Context-Free Languages and Pushdown Automata.
Handbook of Formal Languages, Vol. 1, Springer, 1997.
[11] Jean Berstel.
Transduction and context free languages.
Teubner, 1979.
[12] John E. Hopcroft et Jeffrey D. Ullman.
Introduction to automata theory, languages and computation.
Addison-Wesley, 1979.
[13] Jacques Stern.
Fondements mathematiques de linformatique.
Mc Graw Hill, 1990.
84/149
Grammaires de type 0
Definition : Grammaires generales (type 0)
G = (, V, P, S) o`u
Ca
aaC
AD
AC
CB
DB
aE
Ea
CB
E
AE
Definition : Derivation
( V ) se derive en ( V ) , note
, sil existe (2 , 2 ) P tel
que = 1 2 3 et = 1 2 3 .
On note
la cl
oture reflexive et transitive de
.
85/149
Grammaires de type 0
86/149
Grammaires contextuelles
Definition : Grammaire contextuelle (type 1, context-sensitive)
Une grammaire G = (, V, P, S) est contextuelle si toute r`egle (, ) P verifie
|| ||.
Un langage est de type 1 (ou contextuel) sil peut etre engendre par une grammaire
contextuelle.
n
T
XT
T
aF
Xaa
aaXa
XaF
aaF
Daaa
aaDaa
DaaF
aaaa
Remarque :
Le langage engendre par une grammaire contextuelle est propre.
Si on veut engendrer le mot vide on peut ajouter S
S + .
87/149
Grammaires contextuelles
Definition : Forme normale
Une grammaire G = (, V, P, S) contextuelle est en forme normale si toute r`egle
est de la forme (1 X2 , 1 2 ) avec X V et 6= .
88/149
Grammaires contextuelles
Exercices :
2
89/149
Grammaires alg
ebriques
Definition : Grammaire hors contexte ou algebrique ou de type 2
Une grammaire G = (, V, P, S) est hors contexte ou algebrique si P V (V )
(sous ensemble fini).
Un langage est de type 2 (ou hors contexte ou algebrique) sil peut etre engendre
par une grammaire hors contexte.
On note Alg la famille des langages algebriques.
Exemples :
1. Le langage {an bn | n 0} est algebrique.
2. Expressions compl`etement parenthesees.
90/149
Grammaires alg
ebriques
Lemme : fondamental
Soit G = (, V, P, S) une grammaire algebrique, 1 , 2 , ( V ) et n 0.
n
1 2
2
1
2 avec = 1 2 et n = n1 + n2
1 , 2
1
91/149
Grammaires lin
eaires
Definition : Grammaire lineaire
La grammaire G = (, V, P, S) est
lin
eaire si P V ( V ),
lineaire gauche si P V ( V ),
lineaire droite si P V ( V ).
Un langage est lineaire sil peut etre engendre par une grammaire lineaire.
On note Lin la famille des langages lineaires.
Exemples :
Proposition :
Un langage est rationnel si et seulement si il peut etre engendre par une grammaire
lineaire gauche (ou droite).
92/149
Hi
erarchie de Chomsky
Theor`eme : Chomsky
1. Les langages reguliers (type 3) sont strictement contenus dans les langages
algebriques (type 2).
2. Les langages algebriques propres (type 2) sont strictement contenus dans les
langages contextuels (type 1).
3. les langages contextuels (type 1) sont strictement contenus dans les langages
recursifs.
4. les langages recursifs sont strictement contenus dans les langages
recursivement enumerables (type 0).
93/149
Plan
Introduction
Langages reconnaissables
Fonctions s
equentielles
Automates darbres
Grammaires
6
Langages algebriques
Arbres de derivation
Proprietes de cl
oture
Formes normales
Probl`emes sur les langages algebriques
Automates `
a pile
94/149
Arbres (rappel)
Definition : Arbres
Soit Ap = {d1 , . . . , dp } un alphabet ordonne d1 dp .
Un arbre etiquete dans Z et darite (au plus) p est une fonction partielle t : Ap Z
dont le domaine est un langage dom(t) Ap
ferm
e par prefixe : u v et v dom(t) implique u dom(t),
Definition : Terminologie
La racine de larbre est le mot vide dom(t).
Un nud de larbre est un element u dom(t).
Une feuille de larbre est un nud u dom(t) tel que ud1
/ dom(t).
La fronti`ere Fr(t) (ou mot des feuilles) de larbre t est la concatenation des etiquettes
des feuilles de t.
Larite dun nud u dom(t) est le plus grand entier k tel que udk dom(t)
(k = 0 si u est une feuille).
Les fils dun nud u dom(t) darite k sont les nuds ud1 , . . . , udk dom(t).
95/149
Arbres de d
erivation
Definition :
Soit G = (, V, P, S) une grammaire.
Un arbre de derivation pour G est un arbre t etiquete dans V tel que
Exemple :
Arbres de derivation pour les expressions.
Mise en evidence des priorites ou de lassociativite G ou D.
Proposition :
Soit G = (, V, P, S) une grammaire et x V .
LbG (x) est lensemble des mots ( V ) tels quil existe un arbre de derivation
de racine x et de fronti`ere .
96/149
Arbres de d
erivation
Remarques :
97/149
Ambigut
e
Definition : Ambigute
Une grammaire est ambigue sil existe deux arbres de derivations (distincts) de
meme racine et de meme fronti`ere.
Un langage algebrique est non ambigu sil existe une grammaire non ambigue
qui lengendre.
Exemples :
La grammaire S
SS + aSb + est ambigue mais elle engendre un langage
non ambigu.
La grammaire S
E + E | E E | a | b | c est ambigue et engendre un
langage rationnel.
Proposition :
Tout langage rationnel peut etre engendre par une grammaire lineaire droite non
ambigue.
98/149
Ambigut
e
99/149
Exemple :
Le langage L1 = {an bn cn | n 0} nest pas algebrique.
Corollaire :
Les familles Alg et Lin ne sont pas fermees par intersection ou complementaire.
100/149
Lemme dOgden
Plus fort que le theor`eme de Bar-Hillel, Perles, Shamir.
Lemme : Ogden
Soit G = (, V, P, S) une grammaire. Il existe un entier N N tel que pour tout
b G (x) contenant au moins N lettres distinguees, il existe y V et
x V et w L
, u, , v, ( V ) tels que
w = uv,
x
y, y
uyv, y
,
101/149
Lemme dOgden
Exemple :
Le langage L2 = {an bn cp dp | n, p 0} est algebrique mais pas lineaire.
Corollaire :
La famille Lin nest pas fermee par concatenation ou iteration.
Exemple :
Le langage L3 = {an bn cp | n, p > 0} {an bp cp | n, p > 0} est lineaire et
(inheremment) ambigu.
Corollaire :
Les langages non ambigus ne sont pas fermes par union.
102/149
Propri
et
es de cl
oture
Proposition :
1. La famille Alg est fermee par concatenation, iteration.
2. La famille Alg est fermee par substitution algebrique.
3. Les familles Alg et Lin sont fermees par union et miroir.
4. Les familles Alg et Lin sont fermees par intersection avec un rationnel.
5. Les familles Alg et Lin sont fermees par morphisme.
6. Les familles Alg et Lin sont fermees par projection inverse.
7. Les familles Alg et Lin sont fermees par morphisme inverse.
Definition : Projection
Soit B A deux alphabets.
La projection de A sur B est le morphisme : A B
(
a si a B
defini par (a) =
sinon.
103/149
Propri
et
es de cl
oture
Definition : Transduction rationnelle
Une transduction rationnelle (TR) : A P(B ) est la composee dun morphisme
inverse, dune intersection avec un rationnel et dun morphisme.
C
1
A
Proposition :
Les familles Alg et Lin sont fermees par TR.
104/149
Propri
et
es de cl
oture
Theor`eme : Chomsky et Schutzenberger
Les propositions suivantes sont equivalentes :
1. L est algebrique.
2. Il existe une TR telle que L = (D2 ).
3. Il existe un entier n, un rationnel K et un morphisme alphabetique tels que
L = (Dn K).
Corollaire :
Les langages non ambigus ne sont pas fermes par morphisme.
Formes normales
Definition : Grammaires reduites
La grammaire G = (, V, P, S) est reduite si toute variable x V est
Lemme :
Soit G = (, V, P, S) une grammaire.
1. On peut calculer lensemble des variables productives de G (PTIME).
2. On peut decider si LG (S) = (PTIME).
3. On peut calculer lensemble des variables accessibles de G (PTIME).
Corollaire :
Soit G = (, V, P, S) une grammaire telle que LG (S) 6= . On peut effectivement
calculer une grammaire reduite equivalente G = (, V , P , S) (LG (S) = LG (S)).
Preuve : Restreindre aux variables productives, puis aux variables accessibles.
106/149
Formes normales
Definition : Grammaires propres
La grammaire G = (, V, P, S) est propre si elle ne contient pas de r`egle de la forme
x
ou x
y avec x, y V .
Un langage L est propre si
/ L.
Lemme :
Soit G = (, V, P, S) une grammaire.
On peut calculer lensemble des variables x telles que LG (x) (PTIME).
Proposition :
Soit G = (, V, P, S) une grammaire.
On peut construire une grammaire propre G qui engendre LG (S) \ {} (PTIME).
Remarque : la reduction dune grammaire propre est une grammaire propre.
Corollaire :
On peut decider si un mot u est engendre par une grammaire G.
Navement on a un algorithme EXPTIME mais ce probl`eme est dans PTIME
(cf. HU, p. 139).
107/149
Formes normales
Definition : Forme normale de Chomsky
Une grammaire G = (, V, P, S) est en forme normale de Chomsky
1. faible si P V (V {})
2. forte si P V (V 2 {})
Proposition :
Soit G = (, V, P, S) une grammaire.
On peut effectivement construire une grammaire equivalente G en forme normale
de Chomsky faible ou forte (PTIME).
Remarque : La reduction dune grammaire en FNC est encore en FNC.
Remarque : La mise en FNC dune grammaire propre est une grammaire propre.
Corollaire :
Soit G = (, V, P, S) une grammaire.
On peut decider si LG (S) est fini (PTIME).
108/149
si P V V
si P V (V )
si P V ( V V 2 )
Theor`eme :
Soit G = (, V, P ) une grammaire propre.
On peut construire G = (, V , P ) en FNG equivalente `a G,
i.e., V V et LG (x) = LG (x) pour tout x V .
La difficulte est deliminer la recursivite gauche des r`egles.
109/149
Preuve
On montre par recurrence sur m N que pour tout y V et w ,
m
y w dans G
ssi
y w dans G
Exemples :
1.
2.
x1
x1 b + a
x2
x1 b + ax2
x1
x1 (x1 + x2 ) + (x2 a + b)
x2
x1 x2 + x2 x1 + a
110/149
Probl`
emes d
ecidables
Proposition :
Soit G une grammaire algebrique.
On peut decider si le langage engendre par G est vide, fini ou infini (PTIME).
111/149
Probl`
emes ind
ecidables
Proposition :
Soient L, L deux langages algebriques et R un langage rationnel.
Les probl`emes suivants sont indecidables :
L L = ?
L = ?
L = L ?
L L ?
RL?
LR?
L est-il rationnel ?
L est-il ambigu ?
L est-il algebrique ?
L L est-il algebrique ?
112/149
Plan
Introduction
Langages reconnaissables
Fonctions s
equentielles
Automates darbres
Grammaires
Langages alg
ebriques
7
Automates `a pile
Definition et exemples
Modes de reconnaissance
Lien avec les langages algebriques
Langages deterministes
113/149
Automates `
a pile
Definition : A = (Q, , Z, T, q0 , z0 , F ) o`u
L(A) = {w | (q0 , z0 )
(q, h) dans T avec q F }.
Exemples :
114/149
Automates `
a pile
Exercices :
1. Montrer que le langage {ww
| w } et son complementaire peuvent etre
acceptes par un automate `a pile.
2. Montrer que le complementaire du langage {ww | w } peut etre accepte
par un automate `a pile.
3. Soit A = (Q, , Z, T, q0 , z0 , F ) un automate `a pile. Montrer quon peut
construire un automate `a pile equivalent A tel que
T Q Z ( {}) Q Z 2 .
Le (A) = {w | (q0 , z0 )
(q, ) dans T }.
Exemple :
L = {an bn | n 0}.
Exercice :
Montrer lequivalence avec lacceptation par pile vide ET etat final.
116/149
Definition :
Soit A = (Q, , Z, T, q0 , z0 , Z ) un automate `a pile avec Z Z.
Le langage accepte par A par sommet de pile est
w
Lz (A) = {w | (q0 , z0 )
(q, hz) dans T avec z Z }.
Exemple :
L = {an bn | n 0}.
Exercice :
Comparer lacceptation par sommet de pile avec les autres modes dacceptation.
117/149
Automates `
a pile et grammaires
Proposition :
Soit A = (Q, , Z, T, q0 , z0 ) un automate `a pile reconnaissant par pile vide. On
peut construire une grammaire G qui engendre L(A).
De plus, si A est temps-reel (pas d-transition) alors G est en FNG.
Proposition :
Soit G = (, V, P, S) une grammaire. On peut construire un automate `a pile simple
(un seul etat) A qui accepte LG (S) par pile vide.
De plus, si G est en FNPG alors on peut construire un tel A temps-reel.
118/149
Calculs daccessibilit
e
Exercice :
Soit A = (Q, , Z, T, q0 , z0 , F ) un automate `a pile. Montrer quon peut effectivement calculer les ensembles suivants :
1. X = {(p, x, q) Q Z Q | (p, x)
(q, )}
2. Y = {(p, x, q, y) Q Z Q Z | (p, x)
(q, hy)}
3. V = {(p, x) Q Z | (p, x)
}
4. W = {(p, x, q, y) Q Z Q Z | (p, x)
(q, y)}
5. X = {(p, x, q) Q Z Q | (p, x)
(q, )}
6. Y = {(p, x, q, y) Q Z Q Z | (p, x)
(q, hy)}
7. V = {(p, x) Q Z | (p, x)
}
8. W = {(p, x, q, y) Q Z Q Z | (p, x)
(q, y)}
119/149
Langages d
eterministes
Definition : Automate `a pile deterministe
A = (Q, , Z, T, q0 , z0 , F ) est deterministe si
(p, z, a) Q Z ( {}),
|T (p, z, a)| 1,
Exemples :
1. {an ban | n 0} peut etre accepte par un automate D+TR mais pas par un
automate D+S car il nest pas ferme par prefixe.
2. Dn peut etre accepte par un automate D+TR mais pas par un automate
D+S.
3. Le langage {an bp can | n, p > 0} {an bp dbp | n, p > 0} est deterministe mais
pas D+TR.
4. Le langage {an bn | n > 0} {an b2n | n > 0} est non ambigu mais pas
deterministe.
120/149
Langages d
eterministes
Exercice :
Montrer que le langage {an ban | n 0} peut etre accepte par pile vide par un
automate D+TR+S.
Proposition :
Un langage L est deterministe et prefixe (L L+ = ) ssi il existe un automate
deterministe qui accepte L par pile vide.
Exercice :
Donner un automate `a pile deterministe qui accepte par pile vide le langage
{an bp can | n, p > 0} {an bp dbp | n, p > 0}.
Exercice :
Montrer que pour les automates `a pile deterministes, lacceptation par pile vide est
equivalente `a lacceptation par pile vide ET etat final.
Exercice :
Montrer que Dn peut etre accepte par sommet de pile par un automate D+TR+S.
121/149
Compl
ementaire
122/149
Blocage
Definition : Blocage
Un automate `a pile A = (Q, , Z, T, q0 , z0 ) est sans blocage si pour toute configu a
.
ration accessible (p, ) et pour toute lettre a il existe un calcul (p, )
2. (p, x)
ou a , (p, x)
,
3. (p, x) 6
.
w
(q0 , z0 )
(p, )
6 dans A.
123/149
Blocage
Proposition : Suppression des blocages
Soit A = (Q, , Z, T, q0 , z0 , F ) un automate `a pile deterministe, on peut effectivement construire un automate `a pile deterministe sans blocage A =
(Q , , Z , T , q0 , z0 , F ) qui reconnat le meme langage.
Preuve
Q = Q {q0 , d, f }, F = F {f }, Z = Z {}, z0 = et
(q0 , )
(q0 , z0 ), et (p, )
(d, ) pour p Q et a ,
a
Si pour a on a (p, x)
(q, ) T alors (p, x)
(q, ) T ,
a
Si pour a on a (p, x) 6
et (p, x)
6 dans A alors (p, x)
(d, x) T ,
Si (p, x)
(q, ) T et (p, x) 6
(q, ) T ,
alors (p, x)
Si (p, x)
(f, x) T ,
et (p, x)
(q, ) avec q F alors (p, x)
Si (p, x)
/ F alors (p, x)
(d, x) T .
et (p, x)
(q, ) = q
a
(d, x)
(d, x) et (f, x)
(d, x) pour x Z et a ,
Langages d
eterministes
Proposition :
Soit A = (Q, , Z, T, q0 , z0 , F ) un automate `a pile deterministe, on peut effectivement construire un automate `a pile deterministe A qui reconnat \ L(A).
Proposition :
Soit A = (Q, , Z, T, q0 , z0 , F ) un automate `a pile deterministe, on peut effectivement construire un automate `a pile deterministe equivalent A tel quon ne puisse
pas faire d-transition `a partir dun etat final de A .
Proposition :
Tout langage deterministe est non ambigu.
125/149
Langages d
eterministes
Exercice :
Soit A = (Q, , Z, T, q0 , z0 , F, K) un automate `a pile deterministe reconnaissant
par sommet de pile et etat final (une configuration (q, z) est acceptante si (q, z)
K Q Z). Montrer quon peut effectivement construire un automate `a pile
deterministe equivalent reconnaissant par etat final.
Exercice :
Soit A un automate `a pile deterministe. Montrer quon peut effectivement construire un automate `a pile deterministe qui reconnat le meme langage et dont les
126/149
Langages d
eterministes
Proposition : Decidabilite et indecidabilite
On ne peut pas decider si un langage algebrique est deterministe.
Soient L, L deux langages deterministes et R un langage rationnel.
Les probl`emes suivants sont decidables :
L=R?
RL?
L est-il rationnel ?
L = L ?
L L = ?
L L ?
L L est-il algebrique ?
L L est-il deterministe ?
L L est-il deterministe ?
127/149
Plan
Introduction
Langages reconnaissables
Fonctions s
equentielles
Automates darbres
Grammaires
Langages alg
ebriques
Automates `
a pile
8
Analyse syntaxique
Analyse descendante (LL)
Analyse ascendante (LR)
128/149
Bibliographie
129/149
Application `
a lanalyse syntaxique
Buts :
Formalisation :
130/149
Application `
a lanalyse syntaxique
Resultats :
On sait decider si w LG (S)
en testant toutes les d
erivations de longueur au plus 2|w| si la grammaire est
propre.
en lisant le mot si on a un automate `
a pile deterministe complet.
Ceci se fait en temps lineaire par rapport `a |w| si lautomate est temps reel ou si les
-transitions ne font que depiler.
Probl`emes :
Efficacite de lalgorithme.
La grammaire qui definit la syntaxe du langage de programmation peut etre
non deterministe ou ambigue.
131/149
expansions : {(x, ,
) | (x, ) P } ou
verifications : {(a, a, ) | a }.
Exemple :
1. G1 : S
aSb + ab.
E
T
2. G2 :
Definition :
Analyse LL :
E+T |T
T F |F
(E) | a | b | c
Solutions :
+
Exemple :
1. On peut lever le non determinisme de lautomate associe `a la grammaire G1
en regardant les 2 prochaines lettres.
2. On ne peut pas lever le non determinisme de lautomate associe `a la
grammaire G2 en regardant les k prochaines lettres.
133/149
(
w
Pour w et k 0, on definit Trunck (w) =
w[k]
si |w| k
sinon.
Remarque :
Firstk () = Trunck (Firstk () Firstk ())
Exemple :
Calculer First2 (E) pour la grammaire G2 .
134/149
Calcul de Firstk
Definition : Algorithme de calcul pour Firstk
On suppose k > 0 et toutes les variables de la grammaire G productives.
Pour m 0 et ( V ) , on definit Xm () par :
si a alors X
m (a) = {a},
[
si x V alors X (x) = et X
Xm ()
0
m+1 (x) =
xP
si = 1 n avec i V alors
Xm () = Trunck (Xm (1 ) Xm (n )).
Remarque: on obtient en particulier Xm () = {} pour m 0.
Exemple :
1. La grammaire G1 est LL(2) mais pas LL(1).
2. La grammaire G2 nest pas LL(k).
Exercice :
136/149
Etant
donne une grammaire G et un entier k, on peut decider si G est LL(k).
Etant donne une grammaire G, on ne peut pas decider sil existe un entier k
tel que G soit LL(k).
Etant
donne une grammaire G, on ne peut pas decider sil existe une
grammaire equivalente qui soit LL(1).
Exemple :
On peut transformer la grammaire G2 en une grammaire LL(1) equivalente.
Il suffit de supprimer la recursivite gauche.
T E
E
+T E |
E
T
FT
T
F T |
G2 =
F
(E) | a | b | c
137/149
Follow
Definition : Follow
Soit G = (, V, P, S) une grammaire algebrique, x V et k 0,
Followk (x) = {w | S
x avec w Firstk ()}
Remarque : on peut se restreindre aux derivations gauches avec .
Exemple :
Calculer Follow1 (x) pour chaque variable x de la grammaire G2 .
138/149
Calcul de Followk
Definition : Algorithme de calcul pour Followk
On suppose toutes les variables de la grammaire G accessibles.
Pour m 0 et x V , on definit Ym (x) par :
Y0 (S) = {} et Y0 (x) = si x 6= S
[
Ym+1 (x) = Ym (x)
Trunck (Firstk ()Ym (y))
yxP
139/149
Fortement LL
Definition : Fortement LL(k)
Une grammaire G = (, V, P, S) est fortement LL(k) si pour toutes r`egles x
et x
avec 6= , on a
Firstk (Followk (x)) Firstk (Followk (x)) =
ou encore
Trunck (Firstk ()Followk (x)) Trunck (Firstk ()Followk (x)) = .
Exemple :
1. La grammaire G1 est fortement LL(2).
2. La grammaire G2 est fortement LL(1).
140/149
Fortement LL
Proposition :
Si une grammaire G est fortement LL(k) alors elle est LL(k).
Exemple :
La grammaire
G3 =
S
x
axaa | bxba
b|
Proposition :
Une grammaire est LL(1) si et seulement si elle est fortement LL(1).
141/149
Table danalyse LL
si x et v x ,
x
M (x, v) = x
erreur sinon.
Exemple :
142/149
Analyseur LL
Definition : Analyseur LL(k)
Soit G une grammaire fortement LL(k).
Lanalyseur LL(k) de G est lautomate `a pile simple deterministe qui accepte par
pile vide, qui regarde k lettres `a lavance (lookahead) et dont les transitions sont
donnees par la table danalyse de G.
Proposition : Correction
Soit G une grammaire fortement LL(k).
Lanalyseur LL(k) de G accepte exactement LG (S).
Exercice :
Transformer lanalyseur LL(k) de G en un automate `a pile deterministe classique
(sans lookahead).
143/149