Sémantique

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 13

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.
 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.
Problème
 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
Grammaires
I-

I
attribuées

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.
 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.

Exemple

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 -

II
traduction

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.

Arbre décoré ascendant

Analyse descendante
 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.

Arbre décoré descendant

Conclusion
 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 :
 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.

Exemple
 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 -

III
de traduction

Question
[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

Vous aimerez peut-être aussi

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy