Thème 3 : Traduction dirigée par la syntaxe

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

Théorie des Langages

Initiation à la Programmation en Logique avec SISCtus Prolog

Arbres binaires de recherche

Chapitre I Notions de base et outils de travail

CH.6 Propriétés des langages non contextuels

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

- Le Diagramme de Gantt. - Le Diagramme de Pert - La Méthode QQCQCCP - La Méthode MOSI - Cahier des charges fonctionnel

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

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

COMMUNICATEUR BLISS COMMANDE PAR UN SENSEUR DE POSITION DE L'OEIL

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

STAGE IREM 0- Premiers pas en Python

Note de cours. Introduction à Excel 2007

«Dire et écrire» pour réaliser une composition en travail collaboratif en géographie. Agnès Dullin, lycée J. Racine 20 rue du Rocher, Paris

Les diagrammes de modélisation

Compression de Données - Algorithme de Huffman Document de Conception

Générer du code à partir d une description de haut niveau

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Java Licence Professionnelle CISII,

Algorithmes de recherche

Chap III : Les tableaux

Initiation à l algorithmique

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Cours Composant 2. Qualité logicielle et spécications algébriques

Compilation. Algorithmes d'analyse syntaxique

Conception de circuits numériques et architecture des ordinateurs

ALGORITHMIQUE ET PROGRAMMATION En C

Algorithmique, Structures de données et langage C

Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 17/04/2007

Cours Informatique Master STEP

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

Débuter avec Excel. Excel

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

TD 1 - Structures de Traits et Unification

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

GUIDE Excel (version débutante) Version 2013

Introduction à Eclipse

EXCEL PERFECTIONNEMENT CALCULS AVANCES

TP1 - Prise en main de l environnement Unix.

Analyse hiérarchique de tâches (AHT)

Cours de Programmation en Langage Synchrone SIGNAL. Bernard HOUSSAIS IRISA. Équipe ESPRESSO

Cours 1 : Qu est-ce que la programmation?

Mesurer les performances (CPU) sous Linux

Microsoft Excel Présentation du tableur Excel

L exclusion mutuelle distribuée

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Maple: premiers calculs et premières applications

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Manuel d'utilisation

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

TUTORIAL REUTERS. Utilisation de l'utilitaire de recherche Reuters

TP3 : Creation de tables 1 seance

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

UTILISER UN SITE COLLABORATIF

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Documentation RBS Change E-Commerce Core

Système de Gestion de Fichiers

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

«courtier» : un broker ou un dealer au sens de la Loi de 1934 dont l'établissement principal est situé aux États-Unis d'amérique;

Calc 2 Avancé. OpenOffice.org. Guide de formation avec exercices et cas pratiques. Philippe Moreau

Excel 2007 Niveau 3 Page 1

Les structures de données. Rajae El Ouazzani

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE MINISTERE DE LA FORMATION PROFESSIONNELLE. Microsoft. Excel XP

Description pas à pas des différents processus d installation, configuration, saisie des résultats et export des données.

Alain DI MAGGIO Mise à jour sur le site 11/01/10

Université Ibn Zohr Excel Résume de cours

LibreOffice Calc : introduction aux tableaux croisés dynamiques

FreePlane 1.1 Kris Bostoen Drève des Soupirs Bierghes (Rebecq) Juin 2010

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl , 17 novembre, Lyon. Alexis Sukrieh

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

EXCEL TUTORIEL 2012/2013

OPTION SCIENCES BELLE-ISLE-EN-TERRE

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

La mémoire. Un ordinateur. L'octet. Le bit

Qu est-ce qu un résumé?

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version /11/05

O b s e r v a t o i r e E V A P M. Taxonomie R. Gras - développée

Navigation dans Windows

chapitre 4 Nombres de Catalan

TP1 : Initiation à Java et Eclipse

Code_Aster. Procédure IMPR_RESU aux formats 'RESULTAT' et 'ASTER' 1 But

Ebauche Rapport finale

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

COMMENCER AVEC VUE. Chapitre 1

Exemple 360. Questionnaire Leadership Thomas. Personnel & Confidentiel

LA TECHNIQUE DU COMMENTAIRE DE TEXTE

OCL - Object Constraint Language

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Les formations de remise à niveau(!) l'entrée des licences scientifiques. Patrick Frétigné CIIU

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

Transcription:

Compilation : théorie, techniques et outils Thème 3 : Traduction dirigée par la syntaxe HABIB ABDULRAB (INSTITUT NATIONAL DES SCIENCES APPLIQUÉES DE ROUEN) CLAUDE MOULIN (UNIVERSITÉ DE TECHNOLOGIE DE COMPIÈGNE) SID TOUATI (UNIVERSITÉ DE VERSAILLES SAINT-QUENTIN EN YVELINES)

Table des matières Objectifs 5 Introduction 7 I - Grammaires attribuées 9 A.Grammaires attribuées...9 II - Schéma de traduction 13 A.Schéma de traduction...13 III - Exercice : Schéma de traduction 17 Solution des exercices rédactionnels 19 3

Objectifs Les objectifs de ce chapitre sont de : présenter les concepts liés à l'analyse sémantique d'un programme; de définir les grammaires attribuées ; de montrer dans la pratique comment utiliser les schémas de traduction. 5

Introduction Phase d'analyse sémantique Elle permet le contrôle des cohérences sémantiques. Problème Il s'agit de la détermination des instructions, des expressions et des identificateurs. Il s'agit aussi du contrôle des types dans les affectations et les passages de paramètres. Cela concerne aussi le contrôle des types d'indices de tableaux. Les grammaires hors contexte ne contiennent pas tous les éléments dont l'analyse sémantique a besoin, notamment des éléments contextuels qui peuvent se trouver à différents endroits d'un programme. Cependant les grammaires contextuelles sont plus délicates à manipuler et les processus dont on a besoin sont difficilement automatisables sous formes de règles. La solution choisie est d'augmenter les grammaires contextuelles. 7

I - Grammaires attribuées I Grammaires attribuées 9 A.Grammaires attribuées Définition : Grammaire Attribuée Une grammaire attribuée est une grammaire hors contexte augmentée d'attributs, de règles sémantiques et de conditions. Grammaires Attribuées C'est donc un formalisme qui permet d'associer des actions (règles sémantiques) aux règles de production d'une grammaire. On parle de Définition Dirigée par la Syntaxe puisqu'on s'appuie sur la grammaire définissant la syntaxe du langage. On parlerait de Définition dirigée par le Modèle lors d'un processus similaire s'appuyant sur la représentation intermédiaire produite par l'analyse syntaxique. Chaque symbole de la grammaire peut posséder des attributs. Si le symbole ne figure qu'une seule fois dans une règle, on note l'attribut a du symbole. Dans le cas de plusieurs occurrences du symbole dans une règle, on note le symbole en partie gauche, et, ceux en partie droite, à partir du plus à gauche. Exemple Chaque règle de production de la grammaire possède un ensemble d'actions permettant de calculer la valeur des attributs. Une règle sémantique est une suite d'instructions algorithmiques. Question : déterminer le nombre de a? On note nba, l'attribut contenant le nombre de a attaché à une variable de la grammaire. 9

Grammaires attribuées Définition Un arbre décoré est un arbre où l'on fait figurer les attributs. Arbre Décoré La figure suivante montre l'arbre de dérivation décoré pour une chaîne d'entrée valant aaab Arbre Décoré On considère deux types d'attributs. Leur évaluation dépend de l'ordre avec lequel l'arbre sera parcouru. Définition : Attribut synthétisé Un attribut synthétisé est attaché au symbole en partie gauche et se calcule en fonction des attributs des symboles de la partie droite. Un attribut synthétisé est attaché à un noeud et se calcule en fonction des attributs de ses fils. Définition : Attribut hérité Un attribut est hérité lorsqu'il est calculé à partir des attributs du non terminal de la partie gauche et des attributs des autres symboles de la partie droite. Dans l'arbre décoré, un attribut hérité dépend des attributs du nœud père et des attributs des nœuds frères. Déclaration de variables en C D signifie Déclaration, T Type et L Liste. 10

Grammaires attribuées Exemple de déclaration : real x, y, z Graphe de dépendances Dans la figure suivante les flèches indiquent la dépendance entre les attributs et les fonctions utilisées. Graphe de dépendances Définition : Définition S-attribuée Une définition dirigée par la syntaxe n'ayant que des attributs synthétisés est appelée définition S-attribuée. Définition : Définition L-attribuée Une définition dirigée par la syntaxe est L-attribuée si tout attribut hérité d'un symbole de la partie droite d'une production ne dépend que : des attributs hérités du symbole en partie gauche et des attributs des symboles le précédant dans la production. Définition : Schéma de traduction Un schéma de traduction est une définition dans laquelle l'ordre d'exécution des actions sémantiques est imposé. 11

Schéma de II - traduction II Schéma de traduction 13 A.Schéma de traduction : l'action est exécutée après que le sous-arbre issu de a été construit et parcouru et avant que celui issu de ne le soit. On peut évaluer les attributs en même tant que l'on effectue l'analyse syntaxique. On peut utiliser pour cela une pile. L'ordre d'évaluation des attributs est tributaire de l'ordre dans lequel les nœuds de l'arbre sont appréhendés, soit par une méthode ascendante (LR), soit par une méthode descendante (LL). Il faut cependant se souvenir que l'arbre de dérivation n'est pas réellement construit lors de l'analyse syntaxique. Analyse ascendante La grammaire suivante décrit la construction d'expressions arithmétiques (E), à partir de termes (T), de facteurs (F), avec l'utilisation éventuelle de parenthèses et à partir de nombres (nb) dont on évalue la valeur à partir des chiffres qui le composent. L'objectif est d'évaluer une expression respectant cette grammaire. désigne une pile et le seul attribut utilisé est. On considère une analyse ascendante d'une expression. Remarque : la grammaire étant récursive à gauche n'est pas LL. 13

Schéma de traduction Analyse de 9-5 + 2 La figure suivante montre la construction de l'arbre de dérivation à partir des feuilles et l'état de la pile. Analyse descendante Arbre décoré ascendant La grammaire suivante décrit l'imbrication de niveaux de parenthèses. L'objectif est de déterminer le niveau d'imbrication d'une expression qui figurerait entre deux parenthèses. désigne une pile et le seul attribut utilisé est. On considère une analyse descendante d'une imbrication de parenthèses. 14

Schéma de traduction Analyse de ( ( ) ) ( ) La figure suivante montre la construction de l'arbre de dérivation à partir de la racine et l'évolution de l'état de la pile. Conclusion Arbre décoré descendant L'analyse descendante se prête bien à la traduction de définitions L- attribuées n'ayant que des attributs hérités puisque l'arbre syntaxique est créé de la racine vers les feuilles. Il suffit dans certains cas d'empiler et de dépiler les attributs hérités. L'analyse ascendante se prête bien à la traduction de définitions S- attribuées puisque l'arbre syntaxique est créé des feuilles vers la racine. Il suffit dans les cas simples d'empiler et de dépiler les attributs synthétisés. Principe On insère les actions dans les règles de production comme suit : Exemple Un attribut hérité attaché à une variable en partie droite d'une règle est calculée par une action intervenant avant cette variable. Un attribut synthétisé attaché à la variable en partie gauche est calculé après que tous les arguments dont il dépend ont été calculés. L'action est en général placée en fin de règle. Dans les définitions L-attribuées une action ne peut faire référence à un attribut d'un symbole placé à sa droite. Dans une représentation d'arbre décoré, on place les attributs synthétisés à droite des variables et les attributs hérités à gauche des variables. La grammaire suivante décrit la construction d'expressions arithmétiques 15

Schéma de traduction (E), à partir de termes (T) et à partir de nombres (nb) dont on évalue la valeur à partir des chiffres qui le composent. La grammaire fait intervenir un reste (R) qui initie une nouvelle opération. L'objectif est d'évaluer une expression respectant cette grammaire en utilisant des variables dont le nom rappelle le type des attributs. Les attributs utilisés sont val, he et s. On considère une analyse descendante d'une telle expression. Exemple : Définition L-attribuée Le tableau représente les règles de production, les règles sémantiques et la traduction. Schéma de traduction Dans la pratique, on présente le schéma de traduction sous la forme suivante faisant mieux apparaître l'ordre dans lequel les actions vont être effectuées. 16

Exercice : Schéma III - de traduction III Q u e s t i o n [Solution n 1 p 19] A partir de la grammaire et du schéma de traduction précédent quel est l'ordre des actions lors de l'analyse de l'expression : 10-4 + 5? 17

Solution des exercices rédactionnels > Solution n 1 (exercice p. 17) Réponse 19