Introduction Analyseur pr´edictif First et Follow Factorisation LL(1) 1/ 37
Th´eorie des Langages
´
Episode 5 — Analyse descendante
Grammaires LL(1)
Thomas Pietrzak
Universit´e Paul Verlaine — Metz
Introduction Analyseur pr´edictif First et Follow Factorisation LL(1) 2/ 37
Analyse descendante : grammaires LL(1)
L’analyse descendante (top-down parsing) peut ˆetre consid´er´ee comme
une tentative pour d´eterminer une d´erivation gauche associ´ee `a un mot
d’entr´ee ou un programme `a compiler.
Elle peut aussi ˆetre vue comme une tentative pour construire un arbre
abstrait syntaxique d’un mot d’entr´ee ou un programme `a compiler, en
partant de la racine et en cr´eant les noeuds de l’arbre en pr´eordre.
Note
Nous consid´erons les grammaires hors contexte sans symboles inutiles.
Introduction Analyseur pr´edictif First et Follow Factorisation LL(1) efinition Principe Algorithme Exemple 3/ 37
Analyseur pedictif
Dans la plupart des cas, en ´ecrivant soigneusement une grammaire, apr`es
avoir ´elimin´e les r´ecursivit´es gauche et l’avoir factoris´ee `a gauche, nous
pouvons obtenir une grammaire qui peut ˆetre analys´ee par descente
r´ecursive ou non r´ecursive sans rebroussement, c’est `a dire obtenir un
analyseur pedictif.
Nous consid´erons un analyseur pedictif non r´ecursif. Le probl`eme cl´e de
l’analyse pedictive est la d´etermination de la production `a appliquer pour
d´evelopper un non-terminal.
Introduction Analyseur pr´edictif First et Follow Factorisation LL(1) efinition Principe Algorithme Exemple 4/ 37
L’analyseur non r´ecursif de la figure ci-dessous recherche la production `a
appliquer dans une table d’analyse.
Dans ce qui suit, nous verrons comment cette table peut, pour certaines
grammaires, ˆetre construite directement.
Tampon d’entr´ee a+b$
Pile X Programme d’analyse
pedictive
OO
Yoo//Flot de sortie
Z
$
Table d’analyse M
Introduction Analyseur pr´edictif First et Follow Factorisation LL(1) efinition Principe Algorithme Exemple 5/ 37
Un analyseur syntaxique pedictif dirig´e par table poss`ede :
Un tampon d’entr´ee : contient la chaˆıne `a analyser, suivie de $,
symbole utilis´e comme marqueur d’extremit´e droite qui indique la fin
de la chaˆıne d’entr´ee.
Une pile : contient une s´equence de symboles grammaticaux, avec $
marquant le fond de pile. Initialement, la pile contient l’axiome de la
grammaire au dessus du $
Une table d’analyse : tableau `a deux dimensions M[A,a] o`u Aest un
non-terminal et aun terminal ou le symbole $.
Un flot de sortie : ce qu’on r´ecup`ere.
1 / 61 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !