Académique Documents
Professionnel Documents
Culture Documents
Cours de Compilation
SMI - S5
Prof. M.D. RAHMANI
mrahmani@fsr.ac.ma
Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1
Chapitre II: Notions de la Grammaire
I- Définition de la syntaxe
3/ terme id nb
- un ensemble de terminaux,
- un ensemble de non-terminaux,
- un ensemble de productions,
- un symbole de départ appelé axiome
liste + liste
chiffre chiffre 2
9 5
chiffre - liste
9 chiffre + liste
5 chiffre
2
Cette grammaire est récursive à droite
liste + chiffre
liste - chiffre 2
chiffre 5
9
Cette grammaire est récursive à gauche
9 5 5 2
Nous devons éviter l’utilisation d’une grammaire ambigüe, donc la 1ère forme.
Question: quel est le choix, de la grammaire, le plus approprié ( la 2ème forme ou la 3ème forme)?
Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 13
I- Définition de la syntaxe:
4- Associativité des opérateurs:
La 2ème forme favorise le + par rapport au - : 9-5+2 sera interprétée
comme 9-(5+2)= 9-7=2
La 3ème forme favorise le – par rapport au + : 9-5+2 sera interprétée
comme (9-5)+2=4+2=6
Par convention: nous considérons l’interprétation de la 3ème forme.
Définition:
Soit un opérande entouré de 2 opérateurs, s’il est traité en priorité
par celui qui est à sa gauche (à sa droite), on dit que cet opérateur est
associatif à gauche (à droite).
Convention:
Dans la plus part des langages de programmation, les 4 opérateurs
arithmétiques « +,-,*,/ » sont associatifs à gauche.
Réponse:
Nous définissons 3 non terminaux pour les 3 niveaux de
priorités: E, T et F
La grammaire est:
E E+T E-T T
T T*F T/F F
F nb (E)
Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 17
I- Définition de la syntaxe:
Exemple: arbre syntaxique de nb * (nb + nb)
E Lecture: En profondeur d'abord,
gauche-droite
T
T * F
F ( E )
nb E + T
T F
F nb
nb
Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 18
II- La traduction dirigée par la syntaxe (TDS):
1- Définition:
C’est la traduction d’un langage guidée par une grammaire
hors contexte à laquelle on associe des règles sémantiques.
Exemples d’attributs:
type, adresse mémoire, portée d'une variable....
E.t = 2 5 – 9 +
E1.t = 2 5 – + T.t = 9
F.t = 2 c.t = 5
c.t = 2
4- Le schéma de traduction:
C’est une grammaire dans la quelle on insère les règles
sémantiques, appelées actions, dans la partie droite des
productions.
E + T { imprime ‘+’}
E - T { imprime ‘-’} F
T F c
F c 9 { imprime ‘9’}
c 5 { imprime ‘5’}
2 { imprime ‘2’}