Analyse LR. 1 Rappels 2005/ Le problème

Documents pareils
Théorie des Langages

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

Introduction à la théorie des graphes. Solutions des exercices

Dérivation : Résumé de cours et méthodes

Angles orientés et trigonométrie

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

Résolution d équations non linéaires

Chapitre 2. Matrices

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

Cours de Master Recherche

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Introduction à l étude des Corps Finis

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

Chapitre 7 : Intégration sur un intervalle quelconque

1 Introduction au codage

Image d un intervalle par une fonction continue

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

Circuits RL et RC. Chapitre Inductance

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.

Limites finies en un point

Les indices à surplus constant

Continuité d une fonction de plusieurs variables

Cours d Analyse. Fonctions de plusieurs variables

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

Encryptions, compression et partitionnement des données

1 Première section: La construction générale

Continuité et dérivabilité d une fonction

Calcul différentiel sur R n Première partie

Évaluation et implémentation des langages

Figures composées de pixels et monoïde inversif

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

Construction de l'intégrale de Lebesgue

Capes Première épreuve

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

Développements limités usuels en 0

Théorème du point fixe - Théorème de l inversion locale

Mathématique et Automatique : de la boucle ouverte à la boucle fermée. Maïtine bergounioux Laboratoire MAPMO - UMR 6628 Université d'orléans

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Chp. 4. Minimisation d une fonction d une variable

TD n 10 : Ma première Base de Données

Exercice autour de densité, fonction de répatition, espérance et variance de variables quelconques.

Exercices - Polynômes : corrigé. Opérations sur les polynômes

8.1 Généralités sur les fonctions de plusieurs variables réelles. f : R 2 R (x, y) 1 x 2 y 2

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (

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

TD 1 - Structures de Traits et Unification

Problème 1 : applications du plan affine

Négociation. Compensation. Formation

Structures algébriques

CONJUGUÉ D'UN POINT PAR RAPPORT À UN TRIANGLE

Initiation à la programmation en Python

Cours 02 : Problème général de la programmation linéaire

Grammaires d unification

Commun à tous les candidats

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Maintenabilité d un parc applicatif

Formula Negator, Outil de négation de formule.

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

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

Cégep de Saint Laurent Direction des communications et Direction des ressources technologiques. Projet WebCSL : Guide de rédaction web

PLAN DE COURS. GPA750 Ordonnancement des systèmes de production aéronautique

BACCALAUREAT GENERAL MATHÉMATIQUES

Tests non-paramétriques de non-effet et d adéquation pour des covariables fonctionnelles

Activités numériques [13 Points]

Une forme générale de la conjecture abc

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

04002-LOR 2004 Mars 2004

1 Définition et premières propriétés des congruences

SAS ENTERPRISE MINER POUR L'ACTUAIRE

Note de cours. Introduction à Excel 2007

Excel 2007 Niveau 3 Page 1

Eléments constitutifs et synthèse des convertisseurs statiques. Convertisseur statique CVS. K à séquences convenables. Source d'entrée S1

Quantification Scalaire et Prédictive

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Pour l épreuve d algèbre, les calculatrices sont interdites.

CH IV) Courant alternatif Oscilloscope.

FONCTION EXPONENTIELLE ( ) 2 = 0.

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Continuité en un point

MODE D EMPLOI OUTLOOK ADD-IN POUR SELECTLINE

Connexion à SQL server

TABLE DES MATIÈRES 1. DÉMARRER ISIS 2 2. SAISIE D UN SCHÉMA 3 & ' " ( ) '*+ ", ##) # " -. /0 " 1 2 " 3. SIMULATION 7 " - 4.

Démonstration de la conjecture de Dumont

Utilitaires méconnus de StrataFrame

Rappels sur les suites - Algorithme

Corrigé du baccalauréat S Asie 21 juin 2010

Groupe symétrique. Chapitre II. 1 Définitions et généralités

10 leçon 2. Leçon n 2 : Contact entre deux solides. Frottement de glissement. Exemples. (PC ou 1 er CU)

ELEC2753 Electrotechnique examen du 11/06/2012

Présentation du logiciel

Polynômes à plusieurs variables. Résultant

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Mesure. Multimètre écologique J2. Réf : Français p 1. Version : 0110

Cours de Programmation 2

IMMS-CELL-GSM. Kit de Communication Cellulaire IMMS-CELL- [GSM, ou GSM-E] Instructions d installation

MODE OPERATOIRE OPENOFFICE BASE

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable

Intelligence Artificielle Planification

Transcription:

Analyse LR 2005/2006 1 Rappels 1.1 Le problème Génératif vers recognitif Rappels du cours précédent : Syntaxe foalisée par une grammaire algébrique G =, Σ, P, S. Construction automatique d un automate à pile A = Q, Σ, R, ϕ s, F, $, pour G. Une solution : l automate à pile récursif descendant. Analyseur descendant Définition 1.1. L analyseur récursif descendant pour une grammaire algébrique G =, Σ, P, S est un automate à pile A desc = Q, Σ, R, ϕ s, F, $, où Q est l ensemble des production pointées de P, notées R est l ensemble des règles [A α α ] si A αα P, (1) [A α Bα ] predict [A αb α ][B β], [A α aα ] a match [A αa α ], [A α ], ϕ s = [S S$], F = {[S S $]}. Analyse descendante 1

Exemple 1.2. $[S $] $ = predict $[S $][ S] $ = predict $[S $][ S][ ] $ = match $[S $][ S][ ] $ = match $[S $][ S][ ] $ = $[S $][ S] $ = predict $[S $][ S ][S ] $ = match $[S $][ S ][S ] $ = predict $[S $][ S ][S ][ ] $ = match $[S $][ S ][S ][ ] $ = match $[S $][ S ][S ][ ] $ = $[S $][ S ][S ] $ = $[S $][ S ] $ = $[S $] $ Faiblesses de l analyse descendante 1. L automate à pile est non déteiniste ; il nécessite un backtrack coûteux ; 2. l ensemble de règles R peet des règles de foe [A Aα] predict [A A α][a Aα] si grammaire est récursive gauche. Le non-déteinisme est lié aux conflits entre deux règles predict. Quelles autres possibilités s offrent à nous? 2 Analyse ascendante 2.1 Automate à pile ascendant Dérivations droites Exemple 2.1. Lors d une dérivation droite : 2

S S S S 3

4

S S Et si on inverse retion : si on évalue 1 depuis chaîne teinale? Analyseur ascendant Définition 2.2. L analyseur ascendant pour une grammaire algébrique G =, Σ, P, S est un automate à pile A asc =, Σ, R, ϕ s, F, $, où R est l ensemble des règles α A α A, a shift a, ϕ s = ε, 5

F = {S}. Définition 2.3. Le transducteur ascendant A, τ est défini par τ(α A α A ) = A α, τ( a shift a ) = ε. Analyse ascendante Exemple 2.4. $ $ $ $ $ $ = $ $ $ $ $ $ $ $ = $ $ = S $ S $ = S $ $ Exercice Exercice 2.5. Soit grammaire E E + T T, T T F F, F a (E). Donnez les étapes de l analyse de phrase a + a a par un automate à pile ascendant. Un amélioration? L automate ascendant est lui aussi fortement non-déteiniste, avec des conflits shift/reduce dans une configuration α a si production A α existe, reduce/reduce dans une configuration βα si les productions distinctes A α et B βα existent. En revanche, il n a pas de problème avec récursivité d une grammaire acyclique. 2.2 Contexte Exercice Exercice 2.6. Soit grammaire S A B, A ca a, B cb b. Montrez que l automate à pile ascendant pour cette grammaire est déteiniste. Que dire de l automate descendant? La décision de reconnaître une production de grammaire est faite juste avant de reconnaître les constituants de cette production en analyse descendante, et une fois ces constituants reconnus en analyse descendante. 6

Poignées Définition 2.7. Une chaîne α est un syntagme (phrase en angis) de foe sententielle ϕασ si il existe A α dans P et si S ϕaσ ϕασ. En d autres tees, réduction d α à A dans ϕασ nous donne bien une foe sententielle. Définition 2.8. Un syntagme d une foe sententielle droite dont réduction donne à nouveau une foe sententielle droite est appelé une poignée (handle en angis) : α est une poignée dans foe sententielle δαx si il existe A α dans P et si S δax δαx. Poignées S Exemple 2.9. (2) S SP Exemple 2.10. Prep ε S (3) La poignée d une foe sententielle droite est unique pour une grammaire non ambiguë. Contexte d une poignée Définition 2.11. Soit α une poignée de foe sententielle δαx ; on appelle δα son contexte gauche et x son contexte droit. De nombreuses méthodes d analyse ascendante déteiniste font jouer des retions entre symboles de fin du contexte gauche et symboles du début du contexte droit : analyse par précédence de symboles [Flo63, WW66, IM70], analyse considérant une portion bornée des contextes gauches et droits [Flo64]. Elles sont tombées dans l oubli face à LR... 3 Analyse LR 3.1 Grammaire caractéristique Le principe fondateur de LR est d exploiter totalité du contexte gauche des poignées. ous commençons par donner un autre point de vue sur ce contexte gauche. 7

Préfixe viable Exemple 3.1. S aa bb, A cac d, B cbc d. S a A S b B c A c c B c c A c c B c d d La séquence ac n d est un préfixe viable complet de grammaire : Définition 3.2. Si S δax δαβx dans G, alors δα est un préfixe viable de G, et est complet si β = ε. L intérêt de cette notion de préfixe viable est qu elle est reflétée par une notion simiire de pile viable de l analyseur ascendant. Pile viable Définition 3.3. La chaîne ϕ de Q est une pile viable pour l automate à pile A = Q, Σ, R, ϕ s, F, $, si $ϕ s w$ = $ϕ x$ = $ϕ f $ pour ϕ f dans F et w et x dans Σ. Théorème 3.4. Soit G une grammaire et A asc son automate à pile ascendant. Tout préfixe viable de G est une pile viable de A asc et réciproquement. Toute force de méthode LR réside dans le fait que les préfixes viables d une grammaire foent un ngage régulier, et qu ils peuvent donc être reconnus par un automate à états finis déteiniste. Grammaire caractéristique [Knu65] Définition 3.5. Soit une grammaire G =, Σ, P, S. La grammaire caractéristique de G est G 0 = 0,, P 0, [S] où 0 = {[A] A } et P 0 = {[A] α A α P } {[A] α[b] A αbβ P }. Exemple 3.6. La grammaire caractéristique pour est S aa bb, A cac d, B cbc d [S] a[a] aa b[b] bb, [A] c[a] cac d, [B] c[b] cbc d. La grammaire caractéristique d une grammaire G génère tous les préfixes viables complets de G. La grammaire caractéristique est une grammaire linéaire à droite ; le ngage des préfixes viables complet est donc un ngage rationnel. L exercice suivant est l occasion d exploiter cette propriété. 8

Exercice Exercice 3.7. Donner un automate à états finis déteiniste qui reconnaît les phrases du générées par grammaire caractéristique 3.2 Items LR(k) [S] a[a] aa b[b] bb, [A] c[a] cac d, B c[b] cbc d. te construction de l automate à états finis est foalisée par notion d items LR. ous utilisons une notion plus forte que le simple préfixe viable complet : nous souhaitons connaître exactement quelles chaînes de longueur k sont acceptables après ce préfixe. Item LR(k) valide [Knu65, AU72] Définition 3.8. Un k-item est un couple de foe [A α β, u] où A αβ est une production de P et u une chaîne de Σ k. Il est LR(k)-valide pour un préfixe γ si S δax δαβx = γβx et k : x = u. (4) Si γ est un préfixe viable de G, alors il existe un item valide pour γ, et réciproquement. Exemple 3.9. Les items [A c Ac, c] et [A d, c] sont valides pour ac n, n > 1 pour grammaire S aa bb, A cac d, B cbc d : S ac n 1 Ac n 1 $ ac n Ac n $ ac n dc n $ et 1 : c n = c. (5) L ensemble des k-items valides pour γ est noté alid k (γ) = {ι ι est un k-item valide pour γ}. (6) Retions entre items LR(k) Lemme 3.10. Si S σ est une règle de P, alors [S σ, $ k ] est un k-item valide pour ε. Lemme 3.11. Si [A α Xβ, u] est un k-item valide pour γ, alors [A αx β, u] est un k-item valide pour γx. On note [A α Xβ, u] X [A αx β, u]. Lemme 3.12. Si [A α Bβ, u] est un k-item valide pour γ, alors [B δ, First k (βu)] est un k-item valide pour γ. On note [A α Bβ, u] ε [B δ, First k (βu)]. Théorème 3.13. Exercice Exercice 3.14. Donnez les ensembles alid k pour grammaire Équivalence LR(k) alid k (γ) = {ι [S σ, $ k ] γ ι}. (7) S aa bb, A cac d, B cbc d Définition 3.15. La chaîne γ 1 est LR(k)-équivalente à chaîne γ 2, dénoté par γ 1 LR(k) γ 2, si et seulement si alid k (γ 1 ) = alid k (γ 2 ). Théorème 3.16. Pour toute grammaire G =, Σ, P, S et entier naturel k, retion LR(k) est une retion d équivalence sur. De plus, LR(k) a un index fini et borné par 2 G Σ k. (8) Exercice 3.17. Prouver le théorème précédent. Exercice 3.18. Refoulez définition d une grammaire caractéristique pour utiliser fenêtre de k symboles. 9

3.3 Automate LR(k) L équivalence LR(k) est l équivalence induite par l automate d états finis reconnaissant G k. On note les csses d équivalence de LR(k) par [γ] k où γ est un élément de csse d équivalence, et on note l ensemble des csses d équivalence E k. Automate LR(k) Définition 3.19. L automate LR(k) de grammaire G est l automate à pile ascendant A LR(k) = E k, Σ, R, [ε], {[S]}, $, où E k est l ensemble des csses d équivalences [δ] k de LR(k), l ensemble des règles R est restreint aux règles [δ] k [δx 1 ] k... [δx 1... X n ] k u A X1... Xn [δ] k[δa] k u, (9) si un item [A X 1... X n, u] est LR(k)-valide pour δ, et [δ] k au shift [δ] k [δa] k u, (10) si un item [A α aβ, v] est LR(k)-valide pour δ et si u First k 1 (βv). Analyse ascendante LR Exemple 3.20. Soit grammaire S aa bb, A cac d, B cbc d : $[ε] accdcc$ $[ε][a] ccdcc$ $[ε][a][ac] cdcc$ $[ε][a][ac][acc] dcc$ $[ε][a][ac][acc][accd] cc$ $[ε][a][ac][acc][accd] cc$ = A d $[ε][a][ac][acc][acca] cc$ $[ε][a][ac][acc][acca][accac] c$ $[ε][a][ac][acc][acca][accac] c$ = A cac $[ε][a][ac][aca] c$ $[ε][a][ac][aca][acac] $ $[ε][a][ac][aca][acac] $ = A cac $[ε][a][aa] $ = A cac $[ε][a][aa] $ = S aa $[ε][s] $ Grammaires LR(k) Définition 3.21. Une grammaire est LR(k) si 1. S δax δαx, 2. S γby γβzy = δαzy et 3. k : x = k : zy impliquent δax = γby. Théorème 3.22. Une grammaire G est LR(k) si et seulement si son automate LR(k) est déteiniste. Théorème 3.23. Si une grammaire G est LR(k), alors il existe une grammaire G LR(1) équivalente. 10

Langages déteinistes Théorème 3.24. Les ngages générés par les grammaires LR(1) sont exactement les ngages reconnus par un automate à pile déteiniste. On appelle ces ngages les ngages déteinistes. References [AU72] Alfred. Aho and Jeffrey D. Ullman. The Theory of Parsing, Transtion, and Compiling, volume I: Parsing of Series in Automatic Computation. Prentice Hall, Englewood Cliffs, ew Jersey, 1972. [Flo63] Robert W. Floyd. Syntactic analysis and operator precedence. Journal of the ACM, 10(3):316 333, 1963. [Flo64] [IM70] Robert W. Floyd. Bounded context syntactic analysis. Communications of the ACM, 7(2):62 67, 1964. J. D. Ichbiah and S. P. Morse. A technique for generating almost optimal Floyd-Evans productions for precedence grammars. Communications of the ACM, 13(8):501 508, 1970. [Knu65] Donald E. Knuth. On the transtion of nguages from left to right. Infoation and Control, 8:607 639, 1965. [WW66] ikus Wirth and Helmut Weber. EULER: a generalization of ALGOL and it foal definition. Communications of the ACM, 9(1):Part I: 13 25, and Part II: 89 99, 1966. 11