Cours 7 : Analyse syntaxique ascendante
Analyse syntaxique ascendante
- Automate (simple = un seul état non précisé) avec inspection de pile :
-
, fini
Sémantique
- Configurations :
-
- Transitions :
-
si - Langage :
-
Lien avec les grammaires algébriques
- Automate ascendant de
: -
où
Lemme :
et
- i) si
alors - ii) si
et alors
Corollaire :
pour l’automate ascendant de
Preuve du Corollaire :
Preuve du lemme :
Preuve de i)
Par induction sur la longueur de l’exécution.
-
cas de base :
, et alors -
étape d’induction :
pour
Par HR :
puis (shift) :
ou (reduce)
pour
Preuve de ii)
par induction sur la longueur de la dérivation.
-
Cas de base :
, alors par une séquence de (shift). -
Étape d’induction :
La sous-dérivation
puis
Ex :
Conflits
Ex 2 :
- Conflit shift/reduce:
-
si
et
- Conflit reduce/reduce:
-
si
et
mais
Grammaires
- Grammaire
: -
si sa
n’a pas de conflit
Construction d’un automate déterministe pour une grammaire
- Item
: -
c’est une production pointée
pour - Item
est valide pour : -
ssi
avec .
On note
- Équivalence de
: -
NB :
est d’index fini où
est viable :-
ssi
ssi
-
-
si
, alors : - Si
, alors
- Automate des contextes :
-
un automate fini
dét. complet, où : si
- Construction des
: -
Clôture de
Transitions
Ex :
- Automate à pile
: -
on construit l’automate de contextes de
.
Ex :
Ex :
Automate de contextes :
:-
,et
,
Ex :
la grammaire est
:-
remplacer
NB :
-
utilisé dans OcamL yacc, Bison, etc…
-
ascendants plus difficiles à déboguer à cause des conflits que descendants
Inclusion des langages
(graphe)
NB : Il existe des grammaires
Leave a comment