Algorithmes pour l analyse syntaxique

Documents pareils
Théorie des Langages

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Compilation. Algorithmes d'analyse syntaxique

2.4 Représentation graphique, tableau de Karnaugh

Les droites (d 1 ) et (d 2 ) sont sécantes en A Le point A est le point d intersection des 2 droites

Algorithmique et Programmation, IMA

CONJUGUÉ D'UN POINT PAR RAPPORT À UN TRIANGLE

Algorithmes récursifs

Organigramme / Algorigramme Dossier élève 1 SI

Les intermédiaires privés dans les finances royales espagnoles sous Philippe V et Ferdinand VI

Vecteurs. I Translation. 1. Définition :

Étude des formes de pratiques de la gymnastique sportive enseignées en EPS à l école primaire

Exercice 6 Associer chaque expression de gauche à sa forme réduite (à droite) :

Cours d Informatique

CORRECTION EXERCICES ALGORITHME 1

Cours d Analyse. Fonctions de plusieurs variables

Peut-on perdre sa dignité?

Chapitre 2. Matrices

Jeux de caracte res et encodage (par Michel Michaud 2014)

VOS PREMIERS PAS AVEC TRACENPOCHE

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Sylvain Meille. Étude du comportement mécanique du plâtre pris en relation avec sa microstructure.

Note de cours. Introduction à Excel 2007

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

5 ème Chapitre 4 Triangles

Algorithmique et Programmation Fonctionnelle

VMware ESX : Installation. Hervé Chaudret RSI - Délégation Centre Poitou-Charentes

Excel 2007 Niveau 3 Page 1

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Géométrie dans l espace

Les BRMS Business Rules Management System. Groupe GENITECH

Corrigé des TD 1 à 5

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

SOUS SOL PANOPLIE EF. MAITRISE D'OUVRAGE la justice du Burundi Bujumbura Tel Architectes mandataires Atelier D MAITRISE D'OEUVRE

Maintenabilité d un parc applicatif

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Cours d initiation à la programmation en C++ Johann Cuenin

Initiation à LabView : Les exemples d applications :

Guide méthodologique Utilisation de l état de contrôle de la participation aux bénéfices C22


Représentation géométrique d un nombre complexe

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Les chaînes de caractères

Découverte du tableur CellSheet

Documentation SecurBdF

SOLUTIONS TECHNOLOGIQUES Fiche activité élève

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

1S Modèles de rédaction Enoncés

Continuité et dérivabilité d une fonction

COMPTES DE GROUPE Consolidation et présentation de participations

Notice d Utilisation du logiciel Finite Element Method Magnetics version 3.4 auteur: David Meeker

Perfectionnement Excel 2007

Croissance et vieillissement cellulaires Docteur COSSON Pierre Nb réponses = 81 sur 87. Résultats des questions prédéfinies

Partie 1. Fonctions plus complexes dans Excel. Fonctions Si(), Et(), Ou() et fonctions imbriquées. Opérateurs logiques. I.1.

Etude d Algorithmes Parallèles de Data Mining

1.1 Rappels sur le produit cartésien Relations Graphes dirigés Arbres Exercices Motivation...

LOGO. Module «Big Data» Extraction de Connaissances à partir de Données. Claudia MARINICA MCF, ETIS UCP/ENSEA/CNRS

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

L exclusion mutuelle distribuée

Port de Saint Laurent du Var - Barème des redevances Année /10

Exercices - Nombres complexes : corrigé. Formes algébriques et trigonométriques, module et argument

L ALGORITHMIQUE. Algorithme

Le théorème de Thalès et sa réciproque

Activités numériques [13 Points]

Réseaux IUP2 / 2005 DNS Système de Noms de Domaine

UNITÉS ET MESURES UNITÉS DE MESURE DES LONGUEURS. Dossier n 1 Juin 2005

L examen des recettes lors du contrôle budgétaire d une collectivité territoriale en France. Séminaire Eurorai Alicante 23 avril

Baies serveur CATALOGUE DES PRODUITS DE ZPAS GROUPE. ZPAS-ESTCI 7, rue de l industrie SOULTZ contact@estci.fr

Le centre de gestion a le plaisir de vous adresser les statistiques professionnelles élaborées à partir des dossiers de gestion 2013.

6 ème. Rallye mathématique de la Sarthe 2013/ ère épreuve de qualification : Problèmes Jeudi 21 novembre 2013

Baccalauréat S Nombres complexes Index des exercices sur les complexes de septembre 1999 à juin 2012 Tapuscrit : DENIS VERGÈS

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

EXAMEN : CAP ADAL SESSION 2011 N du sujet : SPECIALITE : CEB - GEPER SUJET SECTEUR : FOLIO : 1/6 EPREUVE : EG2 (MATH-SCIENCES)

Coûts, avantages et inconvénients des différents moyens de paiement

Résolution de systèmes linéaires par des méthodes directes

Analyser des données à l aide de formules

Chapitre 2 Le problème de l unicité des solutions


I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

INFORMATIONS DIVERSES

Les archives. On conserve ces documents pour faire des recherches historiques, administratives ou généalogiques.

Correction TD algorithmique

Architecture des ordinateurs Introduction à l informatique

Consigne : je remplis le tableau en tenant compte des informations de la ligne supérieure et de la colonne de gauche (droite pour les gauchers)

LE PROCESSUS ( la machine) la fonction f. ( On lit : «fonction f qui à x associe f (x)» )

Architecture des Systèmes d Information Architecture des Systèmes d Information

Microprocesseur + Logiciel

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

La fonction ET et la fonction OU. La Fonction ET

Licence Sciences et Technologies Examen janvier 2010

C algèbre d un certain groupe de Lie nilpotent.

INSTRUCTIONS DE MONTAGE CIVIK ZINK

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Rappels et compléments, première partie : Nombres complexes et applications à la géométrie

Angles orientés et trigonométrie

Map-Reduce : un cadre de programmation parallèlle pour l analyse de grandes données. Stéphane Genaud ENSIIE

Service des ressources informatiques - Conseil Scolaire de District Catholique Centre-Sud Page 1

alg - Classes, instances, objets [oo] Exercices résolus

Transcription:

Algorithmes pour l analyse syntaxique Tony Bourdier Version 1.2 8 juillet 2008

Analyse syntaxique 2 Réduction inférieure (suppression des non-terminaux improductifs) Rappel : Soit G = (N, T,, X) une grammaire. Un non-terminal A N est dit improductif s il n existe pas de mot α T tel que A α Dans le cas contraire, A est dit productif. Algorithme 1 Calcul des non-terminaux productifs Sortie : Ensemble des non-terminaux de G productifs : Prod Initialisation : P rod pour tout A α où α T faire Prod Prod A} tantque New faire New pour tout A α tel que A / Prod faire si α (T Prod) alors New New A} Prod Prod New fin tantque Exemple : Soit G = (N = A,B,C},T = a,b},,a) avec définie par : A bb ac B b C ac Initialisation : Prod B} car B b et b T Itération 1 : Prod Prod A} car A bb et b T, B Prod Itération 2 : Prod Prod fin Donc Prod = A,B} donc le non-terminal C est improductif. On peut donc réduire la relation de production de G à l ensemble suivant : } A bb B b

Analyse syntaxique 3 Réduction supérieure (suppression des son-terminaux inaccessibles) Rappel : Soit G = (N, T,, X) une grammaire. Un non-terminal A N est dit inaccessible s il n existe pas α, β (N T) tel que Sinon, A est dit accessible. X αaβ Algorithme 2 Calcul des non-terminaux accessibles Sortie : Ensemble des non-terminaux de G accessibles : Acc Initialisation : Acc X} tantque New faire New pour tout A α 1 B 1 α 2... α n B n α n+1 tel que A Acc et α i T, B i N faire pour tout B i / Acc faire New New B i Acc Acc New fin tantque Exemple : Soit G = (N = X,Y,A,B,C,D},T = a,b,c,d},,x) avec définie par : X Y Y Y D Y a b A B B B d d C c D D C On a : Initialisation : Acc X} Itération 1 : New Y } Itération 2 : New D} Itération 3 : New C} Itération 4 : New fin On peut donc supprimer les non-terminaux A et B ainsi que toutes les règles les contenant.

Analyse syntaxique 4 Réduction Rappel : Une grammaire est dite réduite si tous ses non-terminaux sont productifs et accessibles. Algorithme 3 Réduction Sortie : Réduite de G Effectuer la réduite inférieure de G Effectuer la réduite supérieure de la grammaire résultante de l étape précédente Récursivité à gauche Rappel : Une grammaire est dite récursive gauche immédiate si elle contient des règles de la forme A Aα où A N et α (N T) Algorithme 4 Dérécursivation gauche pour toute règle de la forme A Aα 1... Aα n β 1... β p faire A β1 A remplacer par... β p A A α 1 A... α n A ǫ Exemple : Soit G = (E,T,F }, i},,e) avec définie par : E E + T T T T F F F (E) i Itération 1 : E E Itération 2 : T T fin α 1 }} +T α 1 }} F β 1 }} E TE T est remplacé par E +TE ǫ β 1 }} T FT F est remplacé par T FT ǫ Remarque : On ne traitera pas cette année la récursivité indirecte (i.e. les règles de la forme A + Aα).

Analyse syntaxique 5 Factorisation à gauche Algorithme 5 Factorisation à gauche pour toute règle de la forme A αβ 1... αβ n γ 1... γ p faire A αa remplacer par γ 1... γ p A β 1... β n Exemple : Soit G = (E,T }, i},,e) avec définie par : E E + T E + E F } T T (E) T i T i E E + E Itération 1 : E E + T E + E F est remplacé par F E T E T T T Itération 2 : T T (E) T i T i est remplacé par i T (E) i ǫ fin Production vide Rappel : On note V ide l ensemble composé de tous les non-terminaux pouvant produire le vide : V ide = A N A ǫ } On étend cette définition aux mots de N : A = A 1...A n V ide A 1 V ide,...,a n V ide ou A = ǫ Algorithme 6 Calcul de l ensemble V ide Sortie : Ensemble des non-terminaux pouvant produire le vide : V ide pour tout A ǫ faire V ide V ide A} tantque New faire New pour tout A A 1... A n tel que A 1,...,A n V ide faire New New A} V ide V ide New fin tantque Exemple : Soit G = (A,B,C,D}, a,b,c},,a) avec définie par : A bb CD Bc C } a ǫ B ab cc D ǫ V ide = C,D,A}

Analyse syntaxique 6 Calcul des premiers Rappel : Pour tout mot ω (N T), on appelle premiers de ω et on note Premier(ω) l ensemble : Premier(ω) = a T A aβ } Algorithme 7 Calcul des premiers d un mot Entrée : Mot ω = α 1 α 2... α n (N T) Sortie : Premier(ω) si α 1 T alors Premier(ω) = α 1 } sinon Premier(ω) = pour tout α 1 β faire Premier(ω) Premier(ω) Premier(β) pour i de 1 à n 1 faire si α 1,...,α i V ide alors Premier(ω) Premier(ω) Premier(α i+1 ) Exemple : Soit G = (S,A,B,D}, a,b,c,d},,s) avec définie par : Premier(D) = d} Premier(B) = b} Premier(A) = a,c,d} : Premier(S) = a,b,c,d} : S DA B A aa Dc ǫ B bb ǫ D dd ǫ P remier(a) = P remier(aa) P remier(dc) = Premier(a) Premier(D) Premier(c) }} car D V ide = a} d} c} = a,c,d} P remier(s) = P remier(da) P remier(b) = P remier(d) P remier(a) P remier(b) }} car D V ide = a,b,c,d}

Analyse syntaxique 7 Calcul des suivants Rappel : Soit G = (N, T,, X) une grammaire algébrique. Pour tout non-terminal E N, on appelle suivants de E et on note Suivant(E) l ensemble : Suivant(E) = a T S αeaβ } $ X αe } Algorithme 8 Calcul des suivants d un non-terminal Entrée : Non-terminal E Sortie : Suivant(E) pour tout A αeβ (cas direct) faire Suivant(E) Suivant(E) P remier(β) pour tout A αe ou A αeβ tel que β V ide (cas final) faire Suivant(E) Suivant(E) Suivant(A) si E est l axiome alors Suivant(E) Suivant(E) $} Exemple : Soit G = (N = E,E,T,T,F },T = (,i,),+, },,E) une grammaire algébrique dont la relation de production est définie par : E TE E +TE ǫ T FT T FT ǫ F (E) i On a V ide = E,T } Suivant(E) = $,)} Suivant(E ) = Suivant(E) = $,)} Suivant(T) = Premier(E ) Suivant(E) Suivant(E ) = +,$,)} Suivant(T ) = Suivant(T) = +,$,)} Suivant(F) = Premier(T ) Suivant(T) Suivant(T ) =,+,$,)}

Analyse syntaxique 8 Calcul des symboles directeurs Algorithme 9 Calcul des symboles directeurs d une règle Entrée : Règle A α Sortie : SD(A α) SD(A α) Premier(α) si α V ide alors SD(A α) SD(A α) Suivant(A) Exemple : Soit G = (N = E,E,T,T,F },T = (,i,),+, },,E) une grammaire algébrique dont la relation de production est définie par : E TE E +TE ǫ T FT T FT ǫ F (E) i On a V ide = E,T } SD(E TE ) = Premier(TE ) = (,i} SD(E +TE ) = Premier(+TE ) = +} SD(T FT ) = Premier(FT ) = (,i} SD(T FT ) = } SD(F i) = Premier(i) = i} SD(F (E)) = Premier((E)) = (} SD(E ǫ) = Suivant(E ) = $,)} SD(T ǫ) = Suivant(T ) = +,$,)} Construction de la table d analyse LL(1) Algorithme 10 Construction de la table d analyse LL(1) Sortie : Table d analyse : Tab /* Chaque ligne correpond à un non-terminal */ /* Chaque colonne correspond à un terminal */ pour tout A α faire pour tout d SD(A α) faire Tab(A, d) A α