texte source 3/59 Quoi d autre? 5/59

Documents pareils
Remboursement d un emprunt par annuités constantes

GENESIS - Generalized System for Imputation Simulations (Système généralisé pour simuler l imputation)

Montage émetteur commun

ÉLÉMENTS DE THÉORIE DE L INFORMATION POUR LES COMMUNICATIONS.

Q x2 = 1 2. est dans l ensemble plus grand des rationnels Q. Continuons ainsi, l équation x 2 = 1 2

hal , version 1-14 Aug 2009

Les jeunes économistes

Contrats prévoyance des TNS : Clarifier les règles pour sécuriser les prestations

Exercices d Électrocinétique

ACTE DE PRÊT HYPOTHÉCAIRE

LE RÉGIME DE RETRAITE DU PERSONNEL CANADIEN DE LA CANADA-VIE (le «régime») INFORMATION IMPORTANTE CONCERNANT LE RECOURS COLLECTIF

Editions ENI. Project Collection Référence Bureautique. Extrait

1 Introduction. 2 Définitions des sources de tension et de courant : Cours. Date : A2 Analyser le système Conversion statique de l énergie. 2 h.

Calculer le coût amorti d une obligation sur chaque exercice et présenter les écritures dans les comptes individuels de la société Plumeria.

STATISTIQUE AVEC EXCEL

Integral T 3 Compact. raccordé aux installations Integral 5. Notice d utilisation

Système solaire combiné Estimation des besoins énergétiques

Généralités sur les fonctions 1ES

Be inspired. Numéro Vert. Via Caracciolo Milano tel fax

Impôt sur la fortune et investissement dans les PME Professeur Didier MAILLARD

Chapitre IV : Inductance propre, inductance mutuelle. Energie électromagnétique

MÉTHODES DE SONDAGES UTILISÉES DANS LES PROGRAMMES D ÉVALUATIONS DES ÉLÈVES

Terminal numérique TM 13 raccordé aux installations Integral 33

GEA I Mathématiques nancières Poly. de révision. Lionel Darondeau

Calcul de tableaux d amortissement

Assurance maladie et aléa de moralité ex-ante : L incidence de l hétérogénéité de la perte sanitaire

Chapitre 3 : Incertitudes CHAPITRE 3 INCERTITUDES. Lignes directrices 2006 du GIEC pour les inventaires nationaux de gaz à effet de serre 3.

Fiche n 7 : Vérification du débit et de la vitesse par la méthode de traçage

Qualité de service 7. Ordonnanceurs de paquets. Contexte. Intégration de services. Plan. Multiplexage. FIFO/DropTail. Priorités

I. Présentation générale des méthodes d estimation des projets de type «unité industrielle»

INTERNET. Initiation à

1.0 Probabilité vs statistique Expérience aléatoire et espace échantillonnal Événement...2

Mesure avec une règle

IDEI Report # 18. Transport. December Elasticités de la demande de transport ferroviaire: définitions et mesures

Professionnel de santé équipé de Médiclick!

Des solutions globales fi ables et innovantes.

Pour plus d'informations, veuillez nous contacter au ou à

Le Prêt Efficience Fioul

Grandeur physique, chiffres significatifs

ErP : éco-conception et étiquetage énergétique. Les solutions Vaillant. Pour dépasser la performance. La satisfaction de faire le bon choix.

Plan. Gestion des stocks. Les opérations de gestions des stocks. Les opérations de gestions des stocks

Ecole Polytechnique de Montréal C.P. 6079, succ. Centre-ville Montréal (QC), Canada H3C3A7

Contact SCD Nancy 1 : theses.sciences@scd.uhp-nancy.fr

Mes Objectifs. De, par, avec Sandrine le Métayer Lumières de Philippe Férat. spectacle produit par la Cie DORE

CHAPITRE 14 : RAISONNEMENT DES SYSTÈMES DE COMMANDE

Corrigé du problème de Mathématiques générales Partie I

La théorie classique de l information. 1 ère partie : le point de vue de Kolmogorov.

Psychologie du développement cognitif

Interface OneNote 2013

Pourquoi LICIEL? Avec LICIEL passez à la vitesse supérieure EPROUVE TECHNICITE CONNECTE STABILITE SUIVIE COMMUNAUTE

Les prix quotidiens de clôture des échanges de quotas EUA et de crédits CER sont fournis par ICE Futures Europe

BTS GPN 2EME ANNEE-MATHEMATIQUES-MATHS FINANCIERES MATHEMATIQUES FINANCIERES

TD 1. Statistiques à une variable.

Dirigeant de SAS : Laisser le choix du statut social

EH SmartView. Identifiez vos risques et vos opportunités. Pilotez votre assurance-crédit. Services en ligne Euler Hermes

Parlons. retraite. au service du «bien vieillir» L Assurance retraite. en chiffres* retraités payés pour un montant de 4,2 milliards d euros

VIELLE Marc. CEA-IDEI Janvier La nomenclature retenue 3. 2 Vue d ensemble du modèle 4

Stéganographie Adaptative par Oracle (ASO)

CATALOGUE EXCLUSIF TOUCH MEDIA CATALOGUE DE SITES FORMATS GLOSSAIRE. Notre sélection de supports en représentation exclusive au Maroc

UNIVERSITÉ DU QUÉBEC À MONTRÉAL L ASSURANCE AUTOMOBILE AU QUÉBEC : UNE PRIME SELON LE COÛT SOCIAL MARGINAL MÉMOIRE PRÉSENTÉ COMME EXIGENCE PARTIELLE

Pro2030 GUIDE D UTILISATION. Français

METHODE AUTOMATIQUE POUR CORRIGER LA VARIATION LINGUISTIQUE LORS DE L INTERROGATION DE DOCUMENTS XML DE STRUCTURES HETEROGENES

Corrections adiabatiques et nonadiabatiques dans les systèmes diatomiques par calculs ab-initio

Projet de fin d études

LE PRINCIPE DU RAISONNEMENT PAR RÉCURRENCE

Méthodologie version 1, juillet 2006

DES EFFETS PERVERS DU MORCELLEMENT DES STOCKS

Prise en compte des politiques de transport dans le choix des fournisseurs

MEMOIRE. Présenté au département des sciences de la matière Faculté des sciences

Epreuve Professionnelle

P R I S E E N M A I N R A P I D E O L I V E 4 H D

RAPPORT DE STAGE. Approcher la frontière d'une sous-partie de l'espace ainsi que la distance à cette frontière. Sujet : Master II : SIAD

Avez-vous vous aperçu cette drôle de trogne? Entre nature et histoire autour de Mondoubleau

Économétrie. Annexes : exercices et corrigés. 5 e édition. William Greene New York University

Plan du cours Cours théoriques. 29 septembre 2014

En vue de l'obtention du. Présentée et soutenue par Meva DODO Le 06 novembre 2008

Page 5 TABLE DES MATIÈRES

En vue de l'obtention du. Présentée et soutenue par Elayeb Bilel Le 26 juin 2009

Salle de technologie

La méthode de l amortissement direct

Réseau RRFR pour la surveillance dynamique : application en e-maintenance.

ALGORITHMIQUE ET PROGRAMMATION En C

Paquets. Paquets nationaux 1. Paquets internationaux 11

TRAVAUX PRATIQUES SPECTRO- COLORIMETRIE

Prêt de groupe et sanction sociale Group lending and social fine

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

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

CHAPITRE DEUX : FORMALISME GEOMETRIQUE

Algorithmique et Programmation, IMA

MINISTERE DE L ECONOMIE ET DES FINANCES

CENTRE ORGANISATEUR DU CONCOURS. ANIMALIER Externe PARIS MUSEUM PARIS. ANIMALIER Externe PARIS MUSEUM PARIS

SYSTEME FERME EN REACTION CHIMIQUE

Documents de travail. «La taxe Tobin : une synthèse des travaux basés sur la théorie des jeux et l économétrie» Auteurs

GUIDE D ÉLABORATION D UN PLAN D INTERVENTION POUR LE RENOUVELLEMENT DES CONDUITES D EAU POTABLE, D ÉGOUTS ET DES CHAUSSÉES

Bases de programmation. Cours 5. Structurer les données

santé Les arrêts de travail des séniors en emploi

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

TABLE DES MATIERES CONTROLE D INTEGRITE AU SEIN DE LA RECHERCHE LOCALE DE LA POLICE LOCALE DE BRUXELLES-CAPITALE/IXELLES (DEUXIEME DISTRICT) 1

1. Les enjeux de la prévision du risque de défaut de paiement

Transcription:

Front-end d un complateur parte avant (analyse) Bureau 332 - M3 mrabelle.nebut at lfl.fr texte source analyseur lexcal analyseur syntaxque analyse sémantque rep sémantque 2012-2013 2/59 Analyse sémantque n termes de P... Au sens strct : passer d un arbre syntaxque / une dérvaton à une représentaton nterne du programme source Au sens large : nclut auss les analyses du back-end. Analyse lexcale : P2 le plannng d entrée n est pas lexcalement correct : levée de Scannerxcepton l l est : découpage en token Analyse syntaxque : P3 le plannng d entrée n est pas syntaxquement correct : levée de Parserxcepton l l est :... ren 3/59 4/59 Ren? Quo d autre? Mantenant l faut produre le fcher HML! Avant de produre le fcher HML : vérfer que la date a un sens vérfer que le créneau horare a un sens Ces vérfcatons ne sont pas du ressort des analyses lexcale et syntaxque. 5/59 6/59 Plus généralement Comment fat-on? Sur un programme syntaxquement correct... Une analyse sémantque qu vérfe par exemple : que le programme est correctement typé ; n COMPIL, on va apprendre : une méthode qu passe partout qu l n y a pas de double déclaraton ; que toute varable est déclarée avant son utlsaton ; etc. basée sur le prncpe des grammares attrbuées... mas pas toutes les grammares attrbuées qu construt un modèle sémantque Pus une ou pluseurs actons sémantques : = une structure de données consttuée d objets Java (cf COO) optmsaton producton de code les calculs sont fats sur cette structure de données (cf COO, algo, etc) calculs dvers etc 7/59 8/59

Pourquo fat-on comme ça? Dans ce cours On pourrat se passer du modèle sémantque mas : c est mons propre d un pont de vue GL c est mons modulare On pourrat vor toutes les grammares attrbuées mas : les attrbuts hértés ne sont pas du tout ntutfs on peut toujours s en passer les versons tout synthétsé contennent ben à la constructon de la structure de données Java Les grammares attrbuées (en parte) Les modèles sémantques L analyse sémantque pendant l analyse syntaxque : outllage 9/59 10/59 Pour fare smple...... on va commencer sans structure de données. Par exemple, pour calculer la eur d une expresson arthmétque on va : écrre une grammare attrbuée qu fat drectement le calcul alors qu à la fn du cours on fera : écrre une grammare attrbuée qu calcule des objets Java représentant l expresson pus calculer la eur à partr des objets Java 11/59 12/59 Prncpe des grammares attrbuées xemple Les actons au sens large = des calculs sur des données x : calcul = générer du HML, données = nom master, soutenance, etc x : calcul = vérfer le créneau, données = bornes de l nterle on enrcht les grammares algébrques par : des données : des attrbuts des calculs sur ces données : des actons Calculer la eur d une expresson arthmétque. + ( ) eur de + + pour l entrée 3 + 2 + 1? 13/59 14/59 Arbre syntaxque pour + + Les questons à se poser pour démarrer rès utle pour concevor une attrbuton. Quelles données veut-on calculer quels attrbuts? Comment les calculer quelles actons? + + 15/59 16/59

Données - attrbuts Attrbuts dans l exemple Les attrbuts sont assocés aux symboles de la grammare Symboles = termnaux et non-termnaux xemple : Données = eur de l expresson elle-même : ; de ses sous-expressons :,. attrbut de type enter assocé au non-termnal, noté. attrbut de type enter assocé au non-termnal, noté. attrbut de type enter assocé au termnal, noté. NB : smltude avec les attrbuts d un objet en POO 17/59 18/59 Arbre décoré Calculs - actons Nœuds de l arbre syntaxque décorés avec la eur des attrbuts. Autant de cases que les actons devront remplr. Addtons, par ex pour + :. =. +. On assoce une acton à la producton en dstnguant les dfférentes occurrences de : + { 0. = 1. +. } Passage de eurs : + + 19/59 {. =. } 20/59 Arbre décoré, fn Remarque Pour l entrée 3+2+1 6 5 1 3 2 3 3 + 2 + 1 Qu fxe la eur de l attrbut du termnal? elle est ntalsée par l analyseur lexcal. 21/59 22/59 Grammare attrbuée fnale t s la grammare état ambguë? + { 0. = 1. +. } {. =. } ( ) {. =. } {. =. } On obtendrat la même eur pour les 2 arbres adms par + +...... mas consdérons la grammare : + * Le mot + * a deux sgnfcatons,. a 2 eurs possbles. attrbuer une grammare ambguë n a aucun sens pratque. 23/59 24/59

Comment quand Flot de données pour les attrbuts Les attrbuts qu on utlse remontent dans l arbre syntaxque. Cette grammare spécfe comment calculer des eurs assocées à ses symboles. Mas elle ne dt pas quand effectuer ces calculs...... n dans quel ordre effectuer les actons. Grammare attrbuée = formalsme de spécfcaton, pas d exécuton. 3 3 5 9 2 4 Au sens strct, actons = équatons, pas affectatons. 3 + 2 + 4 25/59 On parle d attrbut synthétsés. 26/59 Sur l exemple + { 0. = 1. +. } {. =. } ( ) {. =. } {. =. } 27/59 Ces actons respectent le schéma : att gauche prod = f ( att drote prod) Pour les symboles non-termnaux : en parte gauche de producton : occurrences de défnton des attrbuts en parte drote de producton : occurrences d utlsaton des attrbuts 28/59 Défnton Dt autrement Le schéma : att gauche prod = f ( att drote prod) correspond à un attrbut synthétsé : défn quand assocé à un non-termnal en parte gauche de producton ; utlsé quand assocé à un non-termnal ou termnal en parte drote de producton. xcepton : attrbut du termnal. : eur fxée par analyseur lexcal ; S le non-termnal X possède un attrbut synthétsé a : toutes les productons de membre gauche X dovent calculer une eur pour X.a n apparaît qu en parte drote (utlsaton seule) ; dt synthétsé par conventon. 29/59 30/59 Autre exemple : expressons préfxées enter ( + lste ) ( * lste ) lste lste ɛ Calcul de la eur de l expresson? 31/59 32/59

Attrbuton partelle Attrbuton partelle 5 lste lste 3 2 lste : de type enter assocé au termnal enter ; de type enter assocé au non-termnal ; enter {. = enter. } ( + lste ) {. =? } ( * lste ) {. =? } ( + 3 enter 2 enter ) 33/59 34/59 Comment fare pour lste? Premère soluton ( + lste ) ( * lste ) lste lste pas moyen de vor en même temps l opérateur et les eurs de la lste vor en même temps = dans le même sous-arbre l faut fare crculer l nformaton On se débroulle pour descendre l opérateur à applquer jusqu aux eurs de la lste Mas alors c est un attrbut qu descend, dt hérté. Pas dans ce cours. 35/59 36/59 Seconde soluton xemple On collecte les eurs de la lste et on les remonte jusqu à l opérateur. t pour collecter l faut... une collecton! Donc, une structure de données plus rche qu un type élémentare : enter ( + lste ) ( * lste ) lste lste ɛ pour et enter, type enter, calcul dem avant lste pour lste, type lst<enter> L acton devent un code mpératf, qu peut s écrre en Java, en pseudo-code, etc. 37/59 38/59 xemple complet Pour aller plus lon enter {. = enter. } ( + lste ) {. = calcule(+, lste.lste) } ( * lste ) {. = calcule(*, lste.lste) } lste lste { lste tmp = lste 1.lste lste tmp.ajoutete(.) lste 1.lste = lste tmp } lste ɛ { lste.lste = new lst<enter> } où calcule(operateur, lste) est programmée à part : lste vde : retourne l élément neutre de operateur On peut auss : assocer à l axome une structure de données qu représente exactement l expresson dans un autre module du complateur, exploter cette structure pour calculer la eur de l expresson. lste non vde : retourne l accumulateur résultant de l applcaton de l opérateur aux éléments de la lste 39/59 40/59

xemple des expressons <<nterface>> xpresson * nter Addton <<abstract>> xpressonbnare Multplcaton 41/59 42/59 xemple des expressons xemple pour Int Les méthodes de xpresson et ses sous-types permettent de : éuer l expresson calculer une expresson post-fxée etc Program nom : Strng 1 LsteDeclaraton * <<nterface>> Declaraton varable : Strng 1 LsteInstructon 1 <<nterface>> Instructon Affectaton varable: Strng 1 Lecture varable : Strng <<nterface>> xpresson 43/59 Declaratonnter DeclaratonLste nter Lste 44/59 xemple pour Int Pattern Vsteur C est le pattern utlsé en COMPIL. Les méthodes de Program permettent de : effectuer un contrôle de type décompler le programme source générer du code Java etc Prncpe : ne pas mettre une méthode par analyse dans xpresson ou Program coder chaque analyse dans une classe ndépendante, un Vsteur chaque vsteur parcourt / vste la structure de données la structure de données est Vstable Vous verrez ça en COO! 45/59 46/59 Quand effectuer les actons Soluton classque : pendant l analyse syntaxque À chaque fos qu une producton est applquée, l acton assocée est exécutée. fxe un ordre d exécuton pour les actons 47/59 48/59

st-ce toujours possble? avec Cup xste-t-l toujours un ordre de calcul des attrbuts compatble...... avec l ordre d applcaton des productons mposé par l analyse syntaxque? Ou dans le cas où les attrbuts sont tous synthétsés : pour les analyseurs ascendants générés par Cup pour les analyseurs descendants générés par AntLR Cup permet d écrre n mporte quelle grammare attrbuée ne contenant que des attrbuts synthétsés. Il faut tout de même que la grammare algébrque sous-jacente sot acceptée par Cup. Pour des rasons de Géne Log, l approche est un peu dfférente de l approche de théore du langage. 49/59 50/59 xemple : expressons arthmétques Grammare ambguë rejetée par Cup termnal PLUS, MOINS, MUL, NIR; non termnal expr; enter + - * - {-, +} p { * } p { -unare} opérateurs bnares assocatfs à gauche expr ::= NIR expr PLUS expr expr MOINS expr expr MUL expr MOINS expr ; 51/59 52/59 Ajout des prortés et assocatvté Ajout ds la grammare de la pro du mons unare termnal MOINS_UNAIR; /* bdon, n exste pas dans l an lex, sert à fxer la pro du mons unare. */ /* du plus au mons prortare */ precedence left PLUS,MOINS; precedence left MUL; precedence left MOINS_UNAIR; /* l faut mettre left ou autre chose c m^eme s opérateur unare */ expr ::= NIR expr PLUS expr expr MOINS expr expr MUL expr MOINS expr %prec MOINS_UNAIR ; 53/59 54/59 Attrbuts Actons Les actons sémantques sont écrtes en Java. Un seul attrbut par symbole, sous-type de Object. Pour déclarer un attrbut, on donne unquement son type (objet) : termnal Integer NIR; non termnal xpresson expr; L attrbut du non-termnal en parte gauche est par conventon RSUL. 55/59 lles sont placées : entre {: :} en fn de producton avant le ; mas avant un %prec. expr ::= NIR:enter {: RSUL = new nter(enter); :} MOINS expr: {: RSUL = new Oppose(); :} %prec MOINS_UNAIR ; 56/59

xécuton des actons Actons et accès aux attrbuts Le nom des attrbuts est local à une producton (= var locale) Accès à l attrbut d un symbole par : Une acton est exécutée lors de la réducton de la producton assocée. cad quand la parte drote de la producton a été reconnue. L arbre syntaxque est construt en ordre postfxe. 57/59 expr ::= NIR: {: RSUL = new nter(); :} MOINS expr: {: RSUL = new Oppose(); :} %prec MOINS_UNAIR expr:gauche MOINS expr:drote {: RSUL = new Soustracton(gauche, drote); :}; 58/59 Attrbuts de l axome L analyseur syntaxque décoré fournt les attrbuts de l axome. mport java_cup.runtme.symbol;... Parserxpresson parser = new Parserxpresson(scanner);... Symbol s = parser.parse(); xpresson e = (xpresson) s.ue;... 59/59