![Page 1: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/1.jpg)
Chapitre 4 :
Introduction a la compilation
Prof. Abdelmajid DarghamFaculte des Sciences, Oujda
Filiere SMI - S4
Module Theorie des langages & Compilation
Universite Mohamed Premier
Septembre, 2012
![Page 2: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/2.jpg)
Sommaire du chapitre 4
Pourquoi la compilation ?
Notion de compilation
Environnement d’un compilateur
La pahse d’analyse
La phase de synthese
Schema global d’un compilateur
Caracteristiques d’un bon compilateur
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 3: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/3.jpg)
Sommaire du chapitre 4
Pourquoi la compilation ?
Notion de compilation
Environnement d’un compilateur
La pahse d’analyse
La phase de synthese
Schema global d’un compilateur
Caracteristiques d’un bon compilateur
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 4: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/4.jpg)
Sommaire du chapitre 4
Pourquoi la compilation ?
Notion de compilation
Environnement d’un compilateur
La pahse d’analyse
La phase de synthese
Schema global d’un compilateur
Caracteristiques d’un bon compilateur
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 5: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/5.jpg)
Sommaire du chapitre 4
Pourquoi la compilation ?
Notion de compilation
Environnement d’un compilateur
La pahse d’analyse
La phase de synthese
Schema global d’un compilateur
Caracteristiques d’un bon compilateur
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 6: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/6.jpg)
Sommaire du chapitre 4
Pourquoi la compilation ?
Notion de compilation
Environnement d’un compilateur
La pahse d’analyse
La phase de synthese
Schema global d’un compilateur
Caracteristiques d’un bon compilateur
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 7: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/7.jpg)
Sommaire du chapitre 4
Pourquoi la compilation ?
Notion de compilation
Environnement d’un compilateur
La pahse d’analyse
La phase de synthese
Schema global d’un compilateur
Caracteristiques d’un bon compilateur
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 8: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/8.jpg)
Sommaire du chapitre 4
Pourquoi la compilation ?
Notion de compilation
Environnement d’un compilateur
La pahse d’analyse
La phase de synthese
Schema global d’un compilateur
Caracteristiques d’un bon compilateur
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 9: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/9.jpg)
Pourquoi la compilation ?
Utilite de la compilation
La compilation est tres importante, car :
1 elle permet d’ecrire des programmes dans plusieurs styles: prodecdurale (C, pascal), fonctionnelle (Lisp),logique (Prolog), oriente objet (C + +, Java).
2 elle permet d’identifier les erreurs dans un programme :erreurs lexicales, erreurs syntaxiques, erreurssemantiques.
3 s’afranchir de la machine utilisee : programmation dehaut niveau.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 10: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/10.jpg)
Pourquoi la compilation ?
Utilite de la compilation
La compilation est tres importante, car :
1 elle permet d’ecrire des programmes dans plusieurs styles: prodecdurale (C, pascal), fonctionnelle (Lisp),logique (Prolog), oriente objet (C + +, Java).
2 elle permet d’identifier les erreurs dans un programme :erreurs lexicales, erreurs syntaxiques, erreurssemantiques.
3 s’afranchir de la machine utilisee : programmation dehaut niveau.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 11: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/11.jpg)
Pourquoi la compilation ?
Utilite de la compilation
La compilation est tres importante, car :
1 elle permet d’ecrire des programmes dans plusieurs styles: prodecdurale (C, pascal), fonctionnelle (Lisp),logique (Prolog), oriente objet (C + +, Java).
2 elle permet d’identifier les erreurs dans un programme :erreurs lexicales, erreurs syntaxiques, erreurssemantiques.
3 s’afranchir de la machine utilisee : programmation dehaut niveau.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 12: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/12.jpg)
Pourquoi la compilation ?
Utilite de la compilation
La compilation est tres importante, car :
1 elle permet d’ecrire des programmes dans plusieurs styles: prodecdurale (C, pascal), fonctionnelle (Lisp),logique (Prolog), oriente objet (C + +, Java).
2 elle permet d’identifier les erreurs dans un programme :erreurs lexicales, erreurs syntaxiques, erreurssemantiques.
3 s’afranchir de la machine utilisee : programmation dehaut niveau.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 13: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/13.jpg)
Pourquoi la compilation ?
Utilite de la compilation
La compilation est tres importante, car :
1 elle permet d’ecrire des programmes dans plusieurs styles: prodecdurale (C, pascal), fonctionnelle (Lisp),logique (Prolog), oriente objet (C + +, Java).
2 elle permet d’identifier les erreurs dans un programme :erreurs lexicales, erreurs syntaxiques, erreurssemantiques.
3 s’afranchir de la machine utilisee : programmation dehaut niveau.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 14: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/14.jpg)
Pourquoi la compilation ?
Utilite de la compilation
Les techniques de compilation ne servent pas qu’a creerdes compilateurs.
Elles sont tres utiles dans d’autres domaines, parmilesquels :
1 Les systemes de composition de texte : certainspassages du texte d’un editeur peuvent constituer descommandes pour generer des figures, des structuresmathematiques, de la mise en forme, ...etc.
2 Interpreteur de requetes : lignes de commandes,requetes dans une base de donnees, ...etc.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 15: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/15.jpg)
Pourquoi la compilation ?
Utilite de la compilation
Les techniques de compilation ne servent pas qu’a creerdes compilateurs.
Elles sont tres utiles dans d’autres domaines, parmilesquels :
1 Les systemes de composition de texte : certainspassages du texte d’un editeur peuvent constituer descommandes pour generer des figures, des structuresmathematiques, de la mise en forme, ...etc.
2 Interpreteur de requetes : lignes de commandes,requetes dans une base de donnees, ...etc.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 16: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/16.jpg)
Pourquoi la compilation ?
Utilite de la compilation
Les techniques de compilation ne servent pas qu’a creerdes compilateurs.
Elles sont tres utiles dans d’autres domaines, parmilesquels :
1 Les systemes de composition de texte : certainspassages du texte d’un editeur peuvent constituer descommandes pour generer des figures, des structuresmathematiques, de la mise en forme, ...etc.
2 Interpreteur de requetes : lignes de commandes,requetes dans une base de donnees, ...etc.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 17: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/17.jpg)
Pourquoi la compilation ?
Utilite de la compilation
Les techniques de compilation ne servent pas qu’a creerdes compilateurs.
Elles sont tres utiles dans d’autres domaines, parmilesquels :
1 Les systemes de composition de texte : certainspassages du texte d’un editeur peuvent constituer descommandes pour generer des figures, des structuresmathematiques, de la mise en forme, ...etc.
2 Interpreteur de requetes : lignes de commandes,requetes dans une base de donnees, ...etc.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 18: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/18.jpg)
Pourquoi la compilation ?
Utilite de la compilation
Les techniques de compilation ne servent pas qu’a creerdes compilateurs.
Elles sont tres utiles dans d’autres domaines, parmilesquels :
1 Les systemes de composition de texte : certainspassages du texte d’un editeur peuvent constituer descommandes pour generer des figures, des structuresmathematiques, de la mise en forme, ...etc.
2 Interpreteur de requetes : lignes de commandes,requetes dans une base de donnees, ...etc.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 19: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/19.jpg)
Pourquoi la compilation ?
Utilite de la compilation
Un cours de compilation est tres riche en matiere deconnaissance.
La compilation touche plusieurs domaines :
1 les langages de programmation.2 l’architecture des ordinateurs.3 la theorie des langages formels : automates finis,
expressions regulieres, grammaires hors-contexte,automates a pile.
4 l’algorithmique.5 le genie logiciel.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 20: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/20.jpg)
Pourquoi la compilation ?
Utilite de la compilation
Un cours de compilation est tres riche en matiere deconnaissance.
La compilation touche plusieurs domaines :
1 les langages de programmation.2 l’architecture des ordinateurs.3 la theorie des langages formels : automates finis,
expressions regulieres, grammaires hors-contexte,automates a pile.
4 l’algorithmique.5 le genie logiciel.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 21: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/21.jpg)
Pourquoi la compilation ?
Utilite de la compilation
Un cours de compilation est tres riche en matiere deconnaissance.
La compilation touche plusieurs domaines :
1 les langages de programmation.2 l’architecture des ordinateurs.3 la theorie des langages formels : automates finis,
expressions regulieres, grammaires hors-contexte,automates a pile.
4 l’algorithmique.5 le genie logiciel.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 22: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/22.jpg)
Pourquoi la compilation ?
Utilite de la compilation
Un cours de compilation est tres riche en matiere deconnaissance.
La compilation touche plusieurs domaines :
1 les langages de programmation.
2 l’architecture des ordinateurs.3 la theorie des langages formels : automates finis,
expressions regulieres, grammaires hors-contexte,automates a pile.
4 l’algorithmique.5 le genie logiciel.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 23: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/23.jpg)
Pourquoi la compilation ?
Utilite de la compilation
Un cours de compilation est tres riche en matiere deconnaissance.
La compilation touche plusieurs domaines :
1 les langages de programmation.2 l’architecture des ordinateurs.
3 la theorie des langages formels : automates finis,expressions regulieres, grammaires hors-contexte,automates a pile.
4 l’algorithmique.5 le genie logiciel.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 24: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/24.jpg)
Pourquoi la compilation ?
Utilite de la compilation
Un cours de compilation est tres riche en matiere deconnaissance.
La compilation touche plusieurs domaines :
1 les langages de programmation.2 l’architecture des ordinateurs.3 la theorie des langages formels : automates finis,
expressions regulieres, grammaires hors-contexte,automates a pile.
4 l’algorithmique.5 le genie logiciel.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 25: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/25.jpg)
Pourquoi la compilation ?
Utilite de la compilation
Un cours de compilation est tres riche en matiere deconnaissance.
La compilation touche plusieurs domaines :
1 les langages de programmation.2 l’architecture des ordinateurs.3 la theorie des langages formels : automates finis,
expressions regulieres, grammaires hors-contexte,automates a pile.
4 l’algorithmique.
5 le genie logiciel.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 26: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/26.jpg)
Pourquoi la compilation ?
Utilite de la compilation
Un cours de compilation est tres riche en matiere deconnaissance.
La compilation touche plusieurs domaines :
1 les langages de programmation.2 l’architecture des ordinateurs.3 la theorie des langages formels : automates finis,
expressions regulieres, grammaires hors-contexte,automates a pile.
4 l’algorithmique.5 le genie logiciel.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 27: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/27.jpg)
Notion de compilation
Definition 1.1
Un compilateur est un programme qui :
lit un programme ecrit dans un premier langage (lelangage source),et le traduit en un programme equivalent ecrit dans unautre langage (le langage cible).
Au cours de ce processus de traduction, un role importantdu compilateur est de signaler a l’utilisateur lapresence d’erreurs dans le programme source.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 28: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/28.jpg)
Notion de compilation
Definition 1.1
Un compilateur est un programme qui :
lit un programme ecrit dans un premier langage (lelangage source),et le traduit en un programme equivalent ecrit dans unautre langage (le langage cible).
Au cours de ce processus de traduction, un role importantdu compilateur est de signaler a l’utilisateur lapresence d’erreurs dans le programme source.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 29: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/29.jpg)
Notion de compilation
Definition 1.1
Un compilateur est un programme qui :
lit un programme ecrit dans un premier langage (lelangage source),
et le traduit en un programme equivalent ecrit dans unautre langage (le langage cible).
Au cours de ce processus de traduction, un role importantdu compilateur est de signaler a l’utilisateur lapresence d’erreurs dans le programme source.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 30: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/30.jpg)
Notion de compilation
Definition 1.1
Un compilateur est un programme qui :
lit un programme ecrit dans un premier langage (lelangage source),et le traduit en un programme equivalent ecrit dans unautre langage (le langage cible).
Au cours de ce processus de traduction, un role importantdu compilateur est de signaler a l’utilisateur lapresence d’erreurs dans le programme source.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 31: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/31.jpg)
Notion de compilation
Definition 1.1
Un compilateur est un programme qui :
lit un programme ecrit dans un premier langage (lelangage source),et le traduit en un programme equivalent ecrit dans unautre langage (le langage cible).
Au cours de ce processus de traduction, un role importantdu compilateur est de signaler a l’utilisateur lapresence d’erreurs dans le programme source.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 32: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/32.jpg)
Notion de compilation
Figure: Schema simplifie d’un compilateur
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 33: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/33.jpg)
Notion de compilation
Figure: Schema simplifie d’un compilateur
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 34: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/34.jpg)
Notion de compilation
Les phases de la compilation
Le processus de compilation s’effectue en generale endeux grandes phases :
1 La phase d’analyse : elle partitionne le pogrammesource en ses composants elementaires et en cree unerepresentation intermediaire.
2 La phase de synthese : elle construit le programmecible a partir de la representation intermediaire.
La theorie des langages intervient au niveau de la phased’analyse.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 35: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/35.jpg)
Notion de compilation
Les phases de la compilation
Le processus de compilation s’effectue en generale endeux grandes phases :
1 La phase d’analyse : elle partitionne le pogrammesource en ses composants elementaires et en cree unerepresentation intermediaire.
2 La phase de synthese : elle construit le programmecible a partir de la representation intermediaire.
La theorie des langages intervient au niveau de la phased’analyse.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 36: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/36.jpg)
Notion de compilation
Les phases de la compilation
Le processus de compilation s’effectue en generale endeux grandes phases :
1 La phase d’analyse : elle partitionne le pogrammesource en ses composants elementaires et en cree unerepresentation intermediaire.
2 La phase de synthese : elle construit le programmecible a partir de la representation intermediaire.
La theorie des langages intervient au niveau de la phased’analyse.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 37: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/37.jpg)
Notion de compilation
Les phases de la compilation
Le processus de compilation s’effectue en generale endeux grandes phases :
1 La phase d’analyse : elle partitionne le pogrammesource en ses composants elementaires et en cree unerepresentation intermediaire.
2 La phase de synthese : elle construit le programmecible a partir de la representation intermediaire.
La theorie des langages intervient au niveau de la phased’analyse.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 38: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/38.jpg)
Notion de compilation
Les phases de la compilation
Le processus de compilation s’effectue en generale endeux grandes phases :
1 La phase d’analyse : elle partitionne le pogrammesource en ses composants elementaires et en cree unerepresentation intermediaire.
2 La phase de synthese : elle construit le programmecible a partir de la representation intermediaire.
La theorie des langages intervient au niveau de la phased’analyse.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 39: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/39.jpg)
Notion de compilation
Les phases de la compilation
Chaque phase contient un certain nombre d’etapes (oumodules).
La sortie d’un module est l’entree du module suivant.
Les modules de la phase d’analyse sont :
1 l’analyse lexicale.2 l’analyse syntaxique.3 l’analyse semantique.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 40: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/40.jpg)
Notion de compilation
Les phases de la compilation
Chaque phase contient un certain nombre d’etapes (oumodules).
La sortie d’un module est l’entree du module suivant.
Les modules de la phase d’analyse sont :
1 l’analyse lexicale.2 l’analyse syntaxique.3 l’analyse semantique.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 41: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/41.jpg)
Notion de compilation
Les phases de la compilation
Chaque phase contient un certain nombre d’etapes (oumodules).
La sortie d’un module est l’entree du module suivant.
Les modules de la phase d’analyse sont :
1 l’analyse lexicale.2 l’analyse syntaxique.3 l’analyse semantique.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 42: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/42.jpg)
Notion de compilation
Les phases de la compilation
Chaque phase contient un certain nombre d’etapes (oumodules).
La sortie d’un module est l’entree du module suivant.
Les modules de la phase d’analyse sont :
1 l’analyse lexicale.2 l’analyse syntaxique.3 l’analyse semantique.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 43: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/43.jpg)
Notion de compilation
Les phases de la compilation
Chaque phase contient un certain nombre d’etapes (oumodules).
La sortie d’un module est l’entree du module suivant.
Les modules de la phase d’analyse sont :
1 l’analyse lexicale.
2 l’analyse syntaxique.3 l’analyse semantique.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 44: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/44.jpg)
Notion de compilation
Les phases de la compilation
Chaque phase contient un certain nombre d’etapes (oumodules).
La sortie d’un module est l’entree du module suivant.
Les modules de la phase d’analyse sont :
1 l’analyse lexicale.2 l’analyse syntaxique.
3 l’analyse semantique.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 45: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/45.jpg)
Notion de compilation
Les phases de la compilation
Chaque phase contient un certain nombre d’etapes (oumodules).
La sortie d’un module est l’entree du module suivant.
Les modules de la phase d’analyse sont :
1 l’analyse lexicale.2 l’analyse syntaxique.3 l’analyse semantique.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 46: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/46.jpg)
Notion de compilation
Les phases de la compilation
Les modules de la phase de synthese sont :
1 la generation de code intermediaire.2 l’optimisation du code intermediaire.3 la generation du code cible.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 47: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/47.jpg)
Notion de compilation
Les phases de la compilation
Les modules de la phase de synthese sont :
1 la generation de code intermediaire.2 l’optimisation du code intermediaire.3 la generation du code cible.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 48: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/48.jpg)
Notion de compilation
Les phases de la compilation
Les modules de la phase de synthese sont :
1 la generation de code intermediaire.
2 l’optimisation du code intermediaire.3 la generation du code cible.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 49: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/49.jpg)
Notion de compilation
Les phases de la compilation
Les modules de la phase de synthese sont :
1 la generation de code intermediaire.2 l’optimisation du code intermediaire.
3 la generation du code cible.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 50: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/50.jpg)
Notion de compilation
Les phases de la compilation
Les modules de la phase de synthese sont :
1 la generation de code intermediaire.2 l’optimisation du code intermediaire.3 la generation du code cible.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 51: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/51.jpg)
Environnement d’un compilateur
La creation d’un programme cible executable peutnecessiter, en plus du compilateur, plusieurs autresprogrammes, qui constituent l’environnement ducompilateur.
L’environnement d’un compilateur inclue principalement :
1 le pre-processeur.2 l’assembleur.3 le relieur-chargeur.
D’autres elements sont egalement utiles comme :
1 L’editeur de texte : pour saisir le texte du code source.2 le debogeur : pour chercher les bougues et en proposer
des solutions.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 52: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/52.jpg)
Environnement d’un compilateur
La creation d’un programme cible executable peutnecessiter, en plus du compilateur, plusieurs autresprogrammes, qui constituent l’environnement ducompilateur.
L’environnement d’un compilateur inclue principalement :
1 le pre-processeur.2 l’assembleur.3 le relieur-chargeur.
D’autres elements sont egalement utiles comme :
1 L’editeur de texte : pour saisir le texte du code source.2 le debogeur : pour chercher les bougues et en proposer
des solutions.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 53: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/53.jpg)
Environnement d’un compilateur
La creation d’un programme cible executable peutnecessiter, en plus du compilateur, plusieurs autresprogrammes, qui constituent l’environnement ducompilateur.
L’environnement d’un compilateur inclue principalement :
1 le pre-processeur.2 l’assembleur.3 le relieur-chargeur.
D’autres elements sont egalement utiles comme :
1 L’editeur de texte : pour saisir le texte du code source.2 le debogeur : pour chercher les bougues et en proposer
des solutions.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 54: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/54.jpg)
Environnement d’un compilateur
La creation d’un programme cible executable peutnecessiter, en plus du compilateur, plusieurs autresprogrammes, qui constituent l’environnement ducompilateur.
L’environnement d’un compilateur inclue principalement :
1 le pre-processeur.
2 l’assembleur.3 le relieur-chargeur.
D’autres elements sont egalement utiles comme :
1 L’editeur de texte : pour saisir le texte du code source.2 le debogeur : pour chercher les bougues et en proposer
des solutions.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 55: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/55.jpg)
Environnement d’un compilateur
La creation d’un programme cible executable peutnecessiter, en plus du compilateur, plusieurs autresprogrammes, qui constituent l’environnement ducompilateur.
L’environnement d’un compilateur inclue principalement :
1 le pre-processeur.2 l’assembleur.
3 le relieur-chargeur.
D’autres elements sont egalement utiles comme :
1 L’editeur de texte : pour saisir le texte du code source.2 le debogeur : pour chercher les bougues et en proposer
des solutions.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 56: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/56.jpg)
Environnement d’un compilateur
La creation d’un programme cible executable peutnecessiter, en plus du compilateur, plusieurs autresprogrammes, qui constituent l’environnement ducompilateur.
L’environnement d’un compilateur inclue principalement :
1 le pre-processeur.2 l’assembleur.3 le relieur-chargeur.
D’autres elements sont egalement utiles comme :
1 L’editeur de texte : pour saisir le texte du code source.2 le debogeur : pour chercher les bougues et en proposer
des solutions.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 57: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/57.jpg)
Environnement d’un compilateur
La creation d’un programme cible executable peutnecessiter, en plus du compilateur, plusieurs autresprogrammes, qui constituent l’environnement ducompilateur.
L’environnement d’un compilateur inclue principalement :
1 le pre-processeur.2 l’assembleur.3 le relieur-chargeur.
D’autres elements sont egalement utiles comme :
1 L’editeur de texte : pour saisir le texte du code source.2 le debogeur : pour chercher les bougues et en proposer
des solutions.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 58: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/58.jpg)
Environnement d’un compilateur
La creation d’un programme cible executable peutnecessiter, en plus du compilateur, plusieurs autresprogrammes, qui constituent l’environnement ducompilateur.
L’environnement d’un compilateur inclue principalement :
1 le pre-processeur.2 l’assembleur.3 le relieur-chargeur.
D’autres elements sont egalement utiles comme :
1 L’editeur de texte : pour saisir le texte du code source.
2 le debogeur : pour chercher les bougues et en proposerdes solutions.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 59: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/59.jpg)
Environnement d’un compilateur
La creation d’un programme cible executable peutnecessiter, en plus du compilateur, plusieurs autresprogrammes, qui constituent l’environnement ducompilateur.
L’environnement d’un compilateur inclue principalement :
1 le pre-processeur.2 l’assembleur.3 le relieur-chargeur.
D’autres elements sont egalement utiles comme :
1 L’editeur de texte : pour saisir le texte du code source.2 le debogeur : pour chercher les bougues et en proposer
des solutions.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 60: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/60.jpg)
Environnement d’un compilateur
Le pre-processeur
Un programme source peut etre divise en modules stockesdans des fichiers separes.
La tache consistant a reconstruire le programme sourceest parfois confie a un programme special, appelepre-processeur.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 61: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/61.jpg)
Environnement d’un compilateur
Le pre-processeur
Un programme source peut etre divise en modules stockesdans des fichiers separes.
La tache consistant a reconstruire le programme sourceest parfois confie a un programme special, appelepre-processeur.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 62: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/62.jpg)
Environnement d’un compilateur
Le pre-processeur
Un programme source peut etre divise en modules stockesdans des fichiers separes.
La tache consistant a reconstruire le programme sourceest parfois confie a un programme special, appelepre-processeur.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 63: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/63.jpg)
Environnement d’un compilateur
Taches realisees par un pre-processeur
1 Macro-expansion : definition de ”marcos-definitions”ou plus simplement ”macros”.
Exemple en C : #define MAX 1002 Inclusion de fichiers : inclusion d’en-tetes dans le texte
d’un programme.Exemple en C : #include <stdio.h>
3 Extensions de langages : extension des fonctionnalitesd’un langage par l’intermediaire de sortes de macrosintrinseques. Par exemple Equel est un langage derequettes de base de donnees qui est integre a C . Lesinstructions qui commencent par ## sont considereespar le pre-processeur comme des instructions d’acces a labase de donnees, qui n’ont rien avoir avec C .
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 64: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/64.jpg)
Environnement d’un compilateur
Taches realisees par un pre-processeur1 Macro-expansion : definition de ”marcos-definitions”
ou plus simplement ”macros”.
Exemple en C : #define MAX 1002 Inclusion de fichiers : inclusion d’en-tetes dans le texte
d’un programme.Exemple en C : #include <stdio.h>
3 Extensions de langages : extension des fonctionnalitesd’un langage par l’intermediaire de sortes de macrosintrinseques. Par exemple Equel est un langage derequettes de base de donnees qui est integre a C . Lesinstructions qui commencent par ## sont considereespar le pre-processeur comme des instructions d’acces a labase de donnees, qui n’ont rien avoir avec C .
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 65: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/65.jpg)
Environnement d’un compilateur
Taches realisees par un pre-processeur1 Macro-expansion : definition de ”marcos-definitions”
ou plus simplement ”macros”.Exemple en C : #define MAX 100
2 Inclusion de fichiers : inclusion d’en-tetes dans le texted’un programme.
Exemple en C : #include <stdio.h>
3 Extensions de langages : extension des fonctionnalitesd’un langage par l’intermediaire de sortes de macrosintrinseques. Par exemple Equel est un langage derequettes de base de donnees qui est integre a C . Lesinstructions qui commencent par ## sont considereespar le pre-processeur comme des instructions d’acces a labase de donnees, qui n’ont rien avoir avec C .
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 66: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/66.jpg)
Environnement d’un compilateur
Taches realisees par un pre-processeur1 Macro-expansion : definition de ”marcos-definitions”
ou plus simplement ”macros”.Exemple en C : #define MAX 100
2 Inclusion de fichiers : inclusion d’en-tetes dans le texted’un programme.
Exemple en C : #include <stdio.h>
3 Extensions de langages : extension des fonctionnalitesd’un langage par l’intermediaire de sortes de macrosintrinseques. Par exemple Equel est un langage derequettes de base de donnees qui est integre a C . Lesinstructions qui commencent par ## sont considereespar le pre-processeur comme des instructions d’acces a labase de donnees, qui n’ont rien avoir avec C .
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 67: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/67.jpg)
Environnement d’un compilateur
Taches realisees par un pre-processeur1 Macro-expansion : definition de ”marcos-definitions”
ou plus simplement ”macros”.Exemple en C : #define MAX 100
2 Inclusion de fichiers : inclusion d’en-tetes dans le texted’un programme.
Exemple en C : #include <stdio.h>
3 Extensions de langages : extension des fonctionnalitesd’un langage par l’intermediaire de sortes de macrosintrinseques. Par exemple Equel est un langage derequettes de base de donnees qui est integre a C . Lesinstructions qui commencent par ## sont considereespar le pre-processeur comme des instructions d’acces a labase de donnees, qui n’ont rien avoir avec C .
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 68: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/68.jpg)
Environnement d’un compilateur
Taches realisees par un pre-processeur1 Macro-expansion : definition de ”marcos-definitions”
ou plus simplement ”macros”.Exemple en C : #define MAX 100
2 Inclusion de fichiers : inclusion d’en-tetes dans le texted’un programme.
Exemple en C : #include <stdio.h>
3 Extensions de langages : extension des fonctionnalitesd’un langage par l’intermediaire de sortes de macrosintrinseques. Par exemple Equel est un langage derequettes de base de donnees qui est integre a C . Lesinstructions qui commencent par ## sont considereespar le pre-processeur comme des instructions d’acces a labase de donnees, qui n’ont rien avoir avec C .
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 69: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/69.jpg)
Environnement d’un compilateur
L’assembleur
Le compilateur produit du code en langaged’assemblage, qui est traduit par un assembleur encode machine.Certains compilateurs produisent du code en langaged’assemblage qui doit etre confie a un assembleur, alorsque d’autres se chargent de cette phase et produientdirectement du code translatable.
Exemples 1.2
b := a + 2MOVE a, R1ADD #2, R1MOVE R1, b
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 70: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/70.jpg)
Environnement d’un compilateur
L’assembleurLe compilateur produit du code en langaged’assemblage, qui est traduit par un assembleur encode machine.
Certains compilateurs produisent du code en langaged’assemblage qui doit etre confie a un assembleur, alorsque d’autres se chargent de cette phase et produientdirectement du code translatable.
Exemples 1.2
b := a + 2MOVE a, R1ADD #2, R1MOVE R1, b
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 71: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/71.jpg)
Environnement d’un compilateur
L’assembleurLe compilateur produit du code en langaged’assemblage, qui est traduit par un assembleur encode machine.Certains compilateurs produisent du code en langaged’assemblage qui doit etre confie a un assembleur, alorsque d’autres se chargent de cette phase et produientdirectement du code translatable.
Exemples 1.2
b := a + 2MOVE a, R1ADD #2, R1MOVE R1, b
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 72: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/72.jpg)
Environnement d’un compilateur
L’assembleurLe compilateur produit du code en langaged’assemblage, qui est traduit par un assembleur encode machine.Certains compilateurs produisent du code en langaged’assemblage qui doit etre confie a un assembleur, alorsque d’autres se chargent de cette phase et produientdirectement du code translatable.
Exemples 1.2
b := a + 2MOVE a, R1ADD #2, R1MOVE R1, b
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 73: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/73.jpg)
Environnement d’un compilateur
L’assembleurLe compilateur produit du code en langaged’assemblage, qui est traduit par un assembleur encode machine.Certains compilateurs produisent du code en langaged’assemblage qui doit etre confie a un assembleur, alorsque d’autres se chargent de cette phase et produientdirectement du code translatable.
Exemples 1.2
b := a + 2
MOVE a, R1ADD #2, R1MOVE R1, b
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 74: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/74.jpg)
Environnement d’un compilateur
L’assembleurLe compilateur produit du code en langaged’assemblage, qui est traduit par un assembleur encode machine.Certains compilateurs produisent du code en langaged’assemblage qui doit etre confie a un assembleur, alorsque d’autres se chargent de cette phase et produientdirectement du code translatable.
Exemples 1.2
b := a + 2MOVE a, R1
ADD #2, R1MOVE R1, b
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 75: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/75.jpg)
Environnement d’un compilateur
L’assembleurLe compilateur produit du code en langaged’assemblage, qui est traduit par un assembleur encode machine.Certains compilateurs produisent du code en langaged’assemblage qui doit etre confie a un assembleur, alorsque d’autres se chargent de cette phase et produientdirectement du code translatable.
Exemples 1.2
b := a + 2MOVE a, R1ADD #2, R1
MOVE R1, b
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 76: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/76.jpg)
Environnement d’un compilateur
L’assembleurLe compilateur produit du code en langaged’assemblage, qui est traduit par un assembleur encode machine.Certains compilateurs produisent du code en langaged’assemblage qui doit etre confie a un assembleur, alorsque d’autres se chargent de cette phase et produientdirectement du code translatable.
Exemples 1.2
b := a + 2MOVE a, R1ADD #2, R1MOVE R1, b
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 77: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/77.jpg)
Environnement d’un compilateur
Quelques definitions
Langage d’assemblage : version mnemonique de codemachine, dans laquelle on emploie des noms au lieu decodes binaires pour designer des operations, et danslaquelle on donne aussi des noms aux adresses memoires.
Code machine translatable : code machine qui peutetre charge en memoire a partir de n’importe quelleadresse A. Plus precisement, si l’on ajoute A a toutesadresses dans le code, toutes les references serontcorrectes.
Code machine absolu : code machine non translatable.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 78: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/78.jpg)
Environnement d’un compilateur
Quelques definitions
Langage d’assemblage : version mnemonique de codemachine, dans laquelle on emploie des noms au lieu decodes binaires pour designer des operations, et danslaquelle on donne aussi des noms aux adresses memoires.
Code machine translatable : code machine qui peutetre charge en memoire a partir de n’importe quelleadresse A. Plus precisement, si l’on ajoute A a toutesadresses dans le code, toutes les references serontcorrectes.
Code machine absolu : code machine non translatable.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 79: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/79.jpg)
Environnement d’un compilateur
Quelques definitions
Langage d’assemblage : version mnemonique de codemachine, dans laquelle on emploie des noms au lieu decodes binaires pour designer des operations, et danslaquelle on donne aussi des noms aux adresses memoires.
Code machine translatable : code machine qui peutetre charge en memoire a partir de n’importe quelleadresse A. Plus precisement, si l’on ajoute A a toutesadresses dans le code, toutes les references serontcorrectes.
Code machine absolu : code machine non translatable.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 80: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/80.jpg)
Environnement d’un compilateur
Quelques definitions
Langage d’assemblage : version mnemonique de codemachine, dans laquelle on emploie des noms au lieu decodes binaires pour designer des operations, et danslaquelle on donne aussi des noms aux adresses memoires.
Code machine translatable : code machine qui peutetre charge en memoire a partir de n’importe quelleadresse A. Plus precisement, si l’on ajoute A a toutesadresses dans le code, toutes les references serontcorrectes.
Code machine absolu : code machine non translatable.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 81: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/81.jpg)
Environnement d’un compilateur
Le relieur-chargeur
Un programme cible peut etre constitue de plusieursfichiers objet translatables, et necessite parfois desbibliotheques.
Le role du Relieur-chargeur est de les assembler pourcreer le programme cible executable.
Cette operation est aussi appelee edition de lien.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 82: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/82.jpg)
Environnement d’un compilateur
Le relieur-chargeur
Un programme cible peut etre constitue de plusieursfichiers objet translatables, et necessite parfois desbibliotheques.
Le role du Relieur-chargeur est de les assembler pourcreer le programme cible executable.
Cette operation est aussi appelee edition de lien.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 83: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/83.jpg)
Environnement d’un compilateur
Le relieur-chargeur
Un programme cible peut etre constitue de plusieursfichiers objet translatables, et necessite parfois desbibliotheques.
Le role du Relieur-chargeur est de les assembler pourcreer le programme cible executable.
Cette operation est aussi appelee edition de lien.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 84: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/84.jpg)
Environnement d’un compilateur
Le relieur-chargeur
Un programme cible peut etre constitue de plusieursfichiers objet translatables, et necessite parfois desbibliotheques.
Le role du Relieur-chargeur est de les assembler pourcreer le programme cible executable.
Cette operation est aussi appelee edition de lien.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 85: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/85.jpg)
Environnement d’un compilateur
Le chargeur
Le chargement consiste a prendre du code machinetranslatable, a modifier les adresses translatables et aplacer les instructions et les donnees ainsi modifiees enmemoire, aux emplacements appropriees.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 86: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/86.jpg)
Environnement d’un compilateur
Le chargeur
Le chargement consiste a prendre du code machinetranslatable, a modifier les adresses translatables et aplacer les instructions et les donnees ainsi modifiees enmemoire, aux emplacements appropriees.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 87: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/87.jpg)
Environnement d’un compilateur
Le relieur
Le relieur permet de constituer un unique programme apartir de plusieurs fichiers contenant du code machinetranslatable.
Ces fichiers peuvent avoir ete produits par plusieurscompilations separees, et un ou plusieurs d’entre euxpeuvent etre des fichiers ou des routines de bibliotheque,fournis par le systeme et displonibles pour toutprogramme qui en a besoin.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 88: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/88.jpg)
Environnement d’un compilateur
Le relieur
Le relieur permet de constituer un unique programme apartir de plusieurs fichiers contenant du code machinetranslatable.
Ces fichiers peuvent avoir ete produits par plusieurscompilations separees, et un ou plusieurs d’entre euxpeuvent etre des fichiers ou des routines de bibliotheque,fournis par le systeme et displonibles pour toutprogramme qui en a besoin.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 89: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/89.jpg)
Environnement d’un compilateur
Le relieur
Le relieur permet de constituer un unique programme apartir de plusieurs fichiers contenant du code machinetranslatable.
Ces fichiers peuvent avoir ete produits par plusieurscompilations separees, et un ou plusieurs d’entre euxpeuvent etre des fichiers ou des routines de bibliotheque,fournis par le systeme et displonibles pour toutprogramme qui en a besoin.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 90: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/90.jpg)
Environnement d’un compilateur
Figure: Schema de l’environnement d’un compilateur
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 91: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/91.jpg)
Environnement d’un compilateur
Figure: Schema de l’environnement d’un compilateur
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 92: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/92.jpg)
La phase d’analyse
L’analyse lexicale (scanning)
L’analyseur lexical lit les caracteres formant leprogramme source et les regroupe en un flot d’uniteslexicales, dont chacune represente une suite de caracteresformant un tout logiquement coherent, comme :
un identificateur;un mot cle;un caractere de ponctuation;un operateur, ...etc.
La suite de caracteres composant une unite lexicale estappelee lexeme.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 93: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/93.jpg)
La phase d’analyse
L’analyse lexicale (scanning)
L’analyseur lexical lit les caracteres formant leprogramme source et les regroupe en un flot d’uniteslexicales, dont chacune represente une suite de caracteresformant un tout logiquement coherent, comme :
un identificateur;un mot cle;un caractere de ponctuation;un operateur, ...etc.
La suite de caracteres composant une unite lexicale estappelee lexeme.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 94: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/94.jpg)
La phase d’analyse
L’analyse lexicale (scanning)
L’analyseur lexical lit les caracteres formant leprogramme source et les regroupe en un flot d’uniteslexicales, dont chacune represente une suite de caracteresformant un tout logiquement coherent, comme :
un identificateur;
un mot cle;un caractere de ponctuation;un operateur, ...etc.
La suite de caracteres composant une unite lexicale estappelee lexeme.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 95: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/95.jpg)
La phase d’analyse
L’analyse lexicale (scanning)
L’analyseur lexical lit les caracteres formant leprogramme source et les regroupe en un flot d’uniteslexicales, dont chacune represente une suite de caracteresformant un tout logiquement coherent, comme :
un identificateur;un mot cle;
un caractere de ponctuation;un operateur, ...etc.
La suite de caracteres composant une unite lexicale estappelee lexeme.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 96: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/96.jpg)
La phase d’analyse
L’analyse lexicale (scanning)
L’analyseur lexical lit les caracteres formant leprogramme source et les regroupe en un flot d’uniteslexicales, dont chacune represente une suite de caracteresformant un tout logiquement coherent, comme :
un identificateur;un mot cle;un caractere de ponctuation;
un operateur, ...etc.
La suite de caracteres composant une unite lexicale estappelee lexeme.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 97: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/97.jpg)
La phase d’analyse
L’analyse lexicale (scanning)
L’analyseur lexical lit les caracteres formant leprogramme source et les regroupe en un flot d’uniteslexicales, dont chacune represente une suite de caracteresformant un tout logiquement coherent, comme :
un identificateur;un mot cle;un caractere de ponctuation;un operateur, ...etc.
La suite de caracteres composant une unite lexicale estappelee lexeme.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 98: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/98.jpg)
La phase d’analyse
L’analyse lexicale (scanning)
L’analyseur lexical lit les caracteres formant leprogramme source et les regroupe en un flot d’uniteslexicales, dont chacune represente une suite de caracteresformant un tout logiquement coherent, comme :
un identificateur;un mot cle;un caractere de ponctuation;un operateur, ...etc.
La suite de caracteres composant une unite lexicale estappelee lexeme.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 99: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/99.jpg)
La phase d’analyse
Figure: Analyse lexicale d’une instruction
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 100: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/100.jpg)
La phase d’analyse
Figure: Analyse lexicale d’une instruction
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 101: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/101.jpg)
La phase d’analyse
L’analyse syntaxique (parsing)
L’analyseur syntaxique prend en entree un flot d’uniteslexicales et fournit en sortie un ensemble d’unitessyntaxiques.
Une unite syntaxique reflete une construction du langagesource, par exemple :
une declaration ou une expression;une instruction d’affectation;une instruction de test ou de boucle;un appel de fonction, ...etc.
Les unites syntaxiques sont en general representees pardes arbres dits arbres syntaxiques.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 102: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/102.jpg)
La phase d’analyse
L’analyse syntaxique (parsing)
L’analyseur syntaxique prend en entree un flot d’uniteslexicales et fournit en sortie un ensemble d’unitessyntaxiques.
Une unite syntaxique reflete une construction du langagesource, par exemple :
une declaration ou une expression;une instruction d’affectation;une instruction de test ou de boucle;un appel de fonction, ...etc.
Les unites syntaxiques sont en general representees pardes arbres dits arbres syntaxiques.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 103: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/103.jpg)
La phase d’analyse
L’analyse syntaxique (parsing)
L’analyseur syntaxique prend en entree un flot d’uniteslexicales et fournit en sortie un ensemble d’unitessyntaxiques.
Une unite syntaxique reflete une construction du langagesource, par exemple :
une declaration ou une expression;une instruction d’affectation;une instruction de test ou de boucle;un appel de fonction, ...etc.
Les unites syntaxiques sont en general representees pardes arbres dits arbres syntaxiques.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 104: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/104.jpg)
La phase d’analyse
L’analyse syntaxique (parsing)
L’analyseur syntaxique prend en entree un flot d’uniteslexicales et fournit en sortie un ensemble d’unitessyntaxiques.
Une unite syntaxique reflete une construction du langagesource, par exemple :
une declaration ou une expression;
une instruction d’affectation;une instruction de test ou de boucle;un appel de fonction, ...etc.
Les unites syntaxiques sont en general representees pardes arbres dits arbres syntaxiques.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 105: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/105.jpg)
La phase d’analyse
L’analyse syntaxique (parsing)
L’analyseur syntaxique prend en entree un flot d’uniteslexicales et fournit en sortie un ensemble d’unitessyntaxiques.
Une unite syntaxique reflete une construction du langagesource, par exemple :
une declaration ou une expression;une instruction d’affectation;
une instruction de test ou de boucle;un appel de fonction, ...etc.
Les unites syntaxiques sont en general representees pardes arbres dits arbres syntaxiques.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 106: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/106.jpg)
La phase d’analyse
L’analyse syntaxique (parsing)
L’analyseur syntaxique prend en entree un flot d’uniteslexicales et fournit en sortie un ensemble d’unitessyntaxiques.
Une unite syntaxique reflete une construction du langagesource, par exemple :
une declaration ou une expression;une instruction d’affectation;une instruction de test ou de boucle;
un appel de fonction, ...etc.
Les unites syntaxiques sont en general representees pardes arbres dits arbres syntaxiques.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 107: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/107.jpg)
La phase d’analyse
L’analyse syntaxique (parsing)
L’analyseur syntaxique prend en entree un flot d’uniteslexicales et fournit en sortie un ensemble d’unitessyntaxiques.
Une unite syntaxique reflete une construction du langagesource, par exemple :
une declaration ou une expression;une instruction d’affectation;une instruction de test ou de boucle;un appel de fonction, ...etc.
Les unites syntaxiques sont en general representees pardes arbres dits arbres syntaxiques.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 108: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/108.jpg)
La phase d’analyse
L’analyse syntaxique (parsing)
L’analyseur syntaxique prend en entree un flot d’uniteslexicales et fournit en sortie un ensemble d’unitessyntaxiques.
Une unite syntaxique reflete une construction du langagesource, par exemple :
une declaration ou une expression;une instruction d’affectation;une instruction de test ou de boucle;un appel de fonction, ...etc.
Les unites syntaxiques sont en general representees pardes arbres dits arbres syntaxiques.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 109: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/109.jpg)
La phase d’analyse
Figure: Analyse syntaxique d’une instruction
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 110: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/110.jpg)
La phase d’analyse
Figure: Analyse syntaxique d’une instruction
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 111: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/111.jpg)
La phase d’analyse
L’analyse semantique
L’analyseur semantique controle le code pour s’assurerqu’il est conforme aux specifications du langage.
Il controle entre autres :
1 le typage;2 le flot d’execution : branchements apres un break;3 unicite des objets, des etiquettes, ...etc.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 112: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/112.jpg)
La phase d’analyse
L’analyse semantique
L’analyseur semantique controle le code pour s’assurerqu’il est conforme aux specifications du langage.
Il controle entre autres :
1 le typage;2 le flot d’execution : branchements apres un break;3 unicite des objets, des etiquettes, ...etc.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 113: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/113.jpg)
La phase d’analyse
L’analyse semantique
L’analyseur semantique controle le code pour s’assurerqu’il est conforme aux specifications du langage.
Il controle entre autres :
1 le typage;2 le flot d’execution : branchements apres un break;3 unicite des objets, des etiquettes, ...etc.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 114: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/114.jpg)
La phase d’analyse
L’analyse semantique
L’analyseur semantique controle le code pour s’assurerqu’il est conforme aux specifications du langage.
Il controle entre autres :
1 le typage;
2 le flot d’execution : branchements apres un break;3 unicite des objets, des etiquettes, ...etc.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 115: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/115.jpg)
La phase d’analyse
L’analyse semantique
L’analyseur semantique controle le code pour s’assurerqu’il est conforme aux specifications du langage.
Il controle entre autres :
1 le typage;2 le flot d’execution : branchements apres un break;
3 unicite des objets, des etiquettes, ...etc.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 116: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/116.jpg)
La phase d’analyse
L’analyse semantique
L’analyseur semantique controle le code pour s’assurerqu’il est conforme aux specifications du langage.
Il controle entre autres :
1 le typage;2 le flot d’execution : branchements apres un break;3 unicite des objets, des etiquettes, ...etc.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 117: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/117.jpg)
La phase de synthese
La generation de code intermediaire
Le generateur de code intermediaire construitexplicitement une representation intermediaire duprogramme source.
Cette representation intermediaire doit etre facile aproduire et facile a traduire en langage cible.
Exemples de representations intermediaires :
Code a trois adresses.AST : (Abstract Syntax Tree) arbre de syntaxeabstrait.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 118: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/118.jpg)
La phase de synthese
La generation de code intermediaire
Le generateur de code intermediaire construitexplicitement une representation intermediaire duprogramme source.
Cette representation intermediaire doit etre facile aproduire et facile a traduire en langage cible.
Exemples de representations intermediaires :
Code a trois adresses.AST : (Abstract Syntax Tree) arbre de syntaxeabstrait.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 119: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/119.jpg)
La phase de synthese
La generation de code intermediaire
Le generateur de code intermediaire construitexplicitement une representation intermediaire duprogramme source.
Cette representation intermediaire doit etre facile aproduire et facile a traduire en langage cible.
Exemples de representations intermediaires :
Code a trois adresses.AST : (Abstract Syntax Tree) arbre de syntaxeabstrait.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 120: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/120.jpg)
La phase de synthese
La generation de code intermediaire
Le generateur de code intermediaire construitexplicitement une representation intermediaire duprogramme source.
Cette representation intermediaire doit etre facile aproduire et facile a traduire en langage cible.
Exemples de representations intermediaires :
Code a trois adresses.AST : (Abstract Syntax Tree) arbre de syntaxeabstrait.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 121: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/121.jpg)
La phase de synthese
La generation de code intermediaire
Le generateur de code intermediaire construitexplicitement une representation intermediaire duprogramme source.
Cette representation intermediaire doit etre facile aproduire et facile a traduire en langage cible.
Exemples de representations intermediaires :
Code a trois adresses.
AST : (Abstract Syntax Tree) arbre de syntaxeabstrait.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 122: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/122.jpg)
La phase de synthese
La generation de code intermediaire
Le generateur de code intermediaire construitexplicitement une representation intermediaire duprogramme source.
Cette representation intermediaire doit etre facile aproduire et facile a traduire en langage cible.
Exemples de representations intermediaires :
Code a trois adresses.AST : (Abstract Syntax Tree) arbre de syntaxeabstrait.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 123: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/123.jpg)
La phase de synthese
La generation de code intermediaire
Le code a trois adresses est similaire au langaged’assemblage d’une machine dans laquelle chaqueemplacement memoire peut jouer le role d’un registre.
Un fragment de code a trois adresses consiste en unesequence d’instructions, dont chacune a au plus 3operandes.
Exemples 1.3
temp1 := 20temp2 := c ∗ temp1temp3 := b + temp2a := temp3
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 124: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/124.jpg)
La phase de synthese
La generation de code intermediaire
Le code a trois adresses est similaire au langaged’assemblage d’une machine dans laquelle chaqueemplacement memoire peut jouer le role d’un registre.
Un fragment de code a trois adresses consiste en unesequence d’instructions, dont chacune a au plus 3operandes.
Exemples 1.3
temp1 := 20temp2 := c ∗ temp1temp3 := b + temp2a := temp3
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 125: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/125.jpg)
La phase de synthese
La generation de code intermediaire
Le code a trois adresses est similaire au langaged’assemblage d’une machine dans laquelle chaqueemplacement memoire peut jouer le role d’un registre.
Un fragment de code a trois adresses consiste en unesequence d’instructions, dont chacune a au plus 3operandes.
Exemples 1.3
temp1 := 20temp2 := c ∗ temp1temp3 := b + temp2a := temp3
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 126: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/126.jpg)
La phase de synthese
La generation de code intermediaire
Le code a trois adresses est similaire au langaged’assemblage d’une machine dans laquelle chaqueemplacement memoire peut jouer le role d’un registre.
Un fragment de code a trois adresses consiste en unesequence d’instructions, dont chacune a au plus 3operandes.
Exemples 1.3
temp1 := 20temp2 := c ∗ temp1temp3 := b + temp2a := temp3
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 127: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/127.jpg)
La phase de synthese
La generation de code intermediaire
Le code a trois adresses est similaire au langaged’assemblage d’une machine dans laquelle chaqueemplacement memoire peut jouer le role d’un registre.
Un fragment de code a trois adresses consiste en unesequence d’instructions, dont chacune a au plus 3operandes.
Exemples 1.3
temp1 := 20
temp2 := c ∗ temp1temp3 := b + temp2a := temp3
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 128: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/128.jpg)
La phase de synthese
La generation de code intermediaire
Le code a trois adresses est similaire au langaged’assemblage d’une machine dans laquelle chaqueemplacement memoire peut jouer le role d’un registre.
Un fragment de code a trois adresses consiste en unesequence d’instructions, dont chacune a au plus 3operandes.
Exemples 1.3
temp1 := 20temp2 := c ∗ temp1
temp3 := b + temp2a := temp3
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 129: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/129.jpg)
La phase de synthese
La generation de code intermediaire
Le code a trois adresses est similaire au langaged’assemblage d’une machine dans laquelle chaqueemplacement memoire peut jouer le role d’un registre.
Un fragment de code a trois adresses consiste en unesequence d’instructions, dont chacune a au plus 3operandes.
Exemples 1.3
temp1 := 20temp2 := c ∗ temp1temp3 := b + temp2
a := temp3
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 130: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/130.jpg)
La phase de synthese
La generation de code intermediaire
Le code a trois adresses est similaire au langaged’assemblage d’une machine dans laquelle chaqueemplacement memoire peut jouer le role d’un registre.
Un fragment de code a trois adresses consiste en unesequence d’instructions, dont chacune a au plus 3operandes.
Exemples 1.3
temp1 := 20temp2 := c ∗ temp1temp3 := b + temp2a := temp3
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 131: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/131.jpg)
La phase de synthese
L’optimisation de code intermediaire
L’optimiseur de code intermediaire tente d’ameliorerle code intermediaire de facon que le code machineresultant s’execute le plus rapidement possible.
Exemples 1.4
Le code precedent est optimise ainsi :
temp1 := c ∗ 20a := b + temp1
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 132: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/132.jpg)
La phase de synthese
L’optimisation de code intermediaire
L’optimiseur de code intermediaire tente d’ameliorerle code intermediaire de facon que le code machineresultant s’execute le plus rapidement possible.
Exemples 1.4
Le code precedent est optimise ainsi :
temp1 := c ∗ 20a := b + temp1
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 133: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/133.jpg)
La phase de synthese
L’optimisation de code intermediaire
L’optimiseur de code intermediaire tente d’ameliorerle code intermediaire de facon que le code machineresultant s’execute le plus rapidement possible.
Exemples 1.4
Le code precedent est optimise ainsi :
temp1 := c ∗ 20a := b + temp1
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 134: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/134.jpg)
La phase de synthese
L’optimisation de code intermediaire
L’optimiseur de code intermediaire tente d’ameliorerle code intermediaire de facon que le code machineresultant s’execute le plus rapidement possible.
Exemples 1.4
Le code precedent est optimise ainsi :
temp1 := c ∗ 20a := b + temp1
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 135: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/135.jpg)
La phase de synthese
L’optimisation de code intermediaire
L’optimiseur de code intermediaire tente d’ameliorerle code intermediaire de facon que le code machineresultant s’execute le plus rapidement possible.
Exemples 1.4
Le code precedent est optimise ainsi :
temp1 := c ∗ 20
a := b + temp1
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 136: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/136.jpg)
La phase de synthese
L’optimisation de code intermediaire
L’optimiseur de code intermediaire tente d’ameliorerle code intermediaire de facon que le code machineresultant s’execute le plus rapidement possible.
Exemples 1.4
Le code precedent est optimise ainsi :
temp1 := c ∗ 20a := b + temp1
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 137: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/137.jpg)
La phase de synthese
La generation de code cible
Le generateur de code cible produit le code cible,c’est-a-dire du code machine translatable ou du codeen langage d’assemblage.
Les emplacements memoire pour chacune des variablesutilisees dans le programme sont selectionnees.
Les instructions intermediaires sont traduites en une suited’instructions machine qui effectuent la meme tache.
Un aspect crucial de ce processus est l’assignation devariables aux registres.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 138: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/138.jpg)
La phase de synthese
La generation de code cible
Le generateur de code cible produit le code cible,c’est-a-dire du code machine translatable ou du codeen langage d’assemblage.
Les emplacements memoire pour chacune des variablesutilisees dans le programme sont selectionnees.
Les instructions intermediaires sont traduites en une suited’instructions machine qui effectuent la meme tache.
Un aspect crucial de ce processus est l’assignation devariables aux registres.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 139: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/139.jpg)
La phase de synthese
La generation de code cible
Le generateur de code cible produit le code cible,c’est-a-dire du code machine translatable ou du codeen langage d’assemblage.
Les emplacements memoire pour chacune des variablesutilisees dans le programme sont selectionnees.
Les instructions intermediaires sont traduites en une suited’instructions machine qui effectuent la meme tache.
Un aspect crucial de ce processus est l’assignation devariables aux registres.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 140: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/140.jpg)
La phase de synthese
La generation de code cible
Le generateur de code cible produit le code cible,c’est-a-dire du code machine translatable ou du codeen langage d’assemblage.
Les emplacements memoire pour chacune des variablesutilisees dans le programme sont selectionnees.
Les instructions intermediaires sont traduites en une suited’instructions machine qui effectuent la meme tache.
Un aspect crucial de ce processus est l’assignation devariables aux registres.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 141: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/141.jpg)
La phase de synthese
La generation de code cible
Le generateur de code cible produit le code cible,c’est-a-dire du code machine translatable ou du codeen langage d’assemblage.
Les emplacements memoire pour chacune des variablesutilisees dans le programme sont selectionnees.
Les instructions intermediaires sont traduites en une suited’instructions machine qui effectuent la meme tache.
Un aspect crucial de ce processus est l’assignation devariables aux registres.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 142: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/142.jpg)
La phase de synthese
La generation de code cible
Exemples 1.5
Le code optimise est traduit en langage d’assemblage.
On utilise les registres effectifs de la machine.
MOVE c, R2MUL #20, R2MOVE b, R1ADD R2, R1MOVE R1, a
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 143: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/143.jpg)
La phase de synthese
La generation de code cible
Exemples 1.5
Le code optimise est traduit en langage d’assemblage.
On utilise les registres effectifs de la machine.
MOVE c, R2MUL #20, R2MOVE b, R1ADD R2, R1MOVE R1, a
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 144: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/144.jpg)
La phase de synthese
La generation de code cible
Exemples 1.5
Le code optimise est traduit en langage d’assemblage.
On utilise les registres effectifs de la machine.
MOVE c, R2MUL #20, R2MOVE b, R1ADD R2, R1MOVE R1, a
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 145: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/145.jpg)
La phase de synthese
La generation de code cible
Exemples 1.5
Le code optimise est traduit en langage d’assemblage.
On utilise les registres effectifs de la machine.
MOVE c, R2
MUL #20, R2MOVE b, R1ADD R2, R1MOVE R1, a
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 146: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/146.jpg)
La phase de synthese
La generation de code cible
Exemples 1.5
Le code optimise est traduit en langage d’assemblage.
On utilise les registres effectifs de la machine.
MOVE c, R2MUL #20, R2
MOVE b, R1ADD R2, R1MOVE R1, a
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 147: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/147.jpg)
La phase de synthese
La generation de code cible
Exemples 1.5
Le code optimise est traduit en langage d’assemblage.
On utilise les registres effectifs de la machine.
MOVE c, R2MUL #20, R2MOVE b, R1
ADD R2, R1MOVE R1, a
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 148: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/148.jpg)
La phase de synthese
La generation de code cible
Exemples 1.5
Le code optimise est traduit en langage d’assemblage.
On utilise les registres effectifs de la machine.
MOVE c, R2MUL #20, R2MOVE b, R1ADD R2, R1
MOVE R1, a
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 149: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/149.jpg)
La phase de synthese
La generation de code cible
Exemples 1.5
Le code optimise est traduit en langage d’assemblage.
On utilise les registres effectifs de la machine.
MOVE c, R2MUL #20, R2MOVE b, R1ADD R2, R1MOVE R1, a
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 150: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/150.jpg)
Schema global d’un compilateur
Une fonction importante d’un compilateur estd’enregistrer les unites lexicales et de collecter lesinformations sur ces unites.
Un module qui permet d’assurer cette fonction s’appellele gsetionnaire de la table des symboles.
La table des symboles est une structure de donneescontenant un enregistrement pour chaque unite lexicale.
Un enregistrement de la table des symboles contient uncertain nombre d’attributs.
Une autre fonction fondamentale d’un compilateur est lagestion des erreurs de programmation.
Cette fonction est assuree par un module appelegsetionnaire des erreurs.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 151: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/151.jpg)
Schema global d’un compilateur
Une fonction importante d’un compilateur estd’enregistrer les unites lexicales et de collecter lesinformations sur ces unites.
Un module qui permet d’assurer cette fonction s’appellele gsetionnaire de la table des symboles.
La table des symboles est une structure de donneescontenant un enregistrement pour chaque unite lexicale.
Un enregistrement de la table des symboles contient uncertain nombre d’attributs.
Une autre fonction fondamentale d’un compilateur est lagestion des erreurs de programmation.
Cette fonction est assuree par un module appelegsetionnaire des erreurs.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 152: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/152.jpg)
Schema global d’un compilateur
Une fonction importante d’un compilateur estd’enregistrer les unites lexicales et de collecter lesinformations sur ces unites.
Un module qui permet d’assurer cette fonction s’appellele gsetionnaire de la table des symboles.
La table des symboles est une structure de donneescontenant un enregistrement pour chaque unite lexicale.
Un enregistrement de la table des symboles contient uncertain nombre d’attributs.
Une autre fonction fondamentale d’un compilateur est lagestion des erreurs de programmation.
Cette fonction est assuree par un module appelegsetionnaire des erreurs.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 153: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/153.jpg)
Schema global d’un compilateur
Une fonction importante d’un compilateur estd’enregistrer les unites lexicales et de collecter lesinformations sur ces unites.
Un module qui permet d’assurer cette fonction s’appellele gsetionnaire de la table des symboles.
La table des symboles est une structure de donneescontenant un enregistrement pour chaque unite lexicale.
Un enregistrement de la table des symboles contient uncertain nombre d’attributs.
Une autre fonction fondamentale d’un compilateur est lagestion des erreurs de programmation.
Cette fonction est assuree par un module appelegsetionnaire des erreurs.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 154: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/154.jpg)
Schema global d’un compilateur
Une fonction importante d’un compilateur estd’enregistrer les unites lexicales et de collecter lesinformations sur ces unites.
Un module qui permet d’assurer cette fonction s’appellele gsetionnaire de la table des symboles.
La table des symboles est une structure de donneescontenant un enregistrement pour chaque unite lexicale.
Un enregistrement de la table des symboles contient uncertain nombre d’attributs.
Une autre fonction fondamentale d’un compilateur est lagestion des erreurs de programmation.
Cette fonction est assuree par un module appelegsetionnaire des erreurs.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 155: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/155.jpg)
Schema global d’un compilateur
Une fonction importante d’un compilateur estd’enregistrer les unites lexicales et de collecter lesinformations sur ces unites.
Un module qui permet d’assurer cette fonction s’appellele gsetionnaire de la table des symboles.
La table des symboles est une structure de donneescontenant un enregistrement pour chaque unite lexicale.
Un enregistrement de la table des symboles contient uncertain nombre d’attributs.
Une autre fonction fondamentale d’un compilateur est lagestion des erreurs de programmation.
Cette fonction est assuree par un module appelegsetionnaire des erreurs.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 156: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/156.jpg)
Schema global d’un compilateur
Une fonction importante d’un compilateur estd’enregistrer les unites lexicales et de collecter lesinformations sur ces unites.
Un module qui permet d’assurer cette fonction s’appellele gsetionnaire de la table des symboles.
La table des symboles est une structure de donneescontenant un enregistrement pour chaque unite lexicale.
Un enregistrement de la table des symboles contient uncertain nombre d’attributs.
Une autre fonction fondamentale d’un compilateur est lagestion des erreurs de programmation.
Cette fonction est assuree par un module appelegsetionnaire des erreurs.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 157: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/157.jpg)
Schema global d’un compilateur
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 158: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/158.jpg)
Schema global d’un compilateur
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 159: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/159.jpg)
Caracteristiques d’un bon compilateur
1 Le code cible produit doit etre correct.
2 Le code produit est bien optimise.
3 L’executable est rapide.
4 Le processus de compilation est rapide.
5 Permettre la compilation separee.
6 Avoir un tres bon debogueur.
7 Detecter le plus grand nombre possible des erreurssemantiques.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 160: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/160.jpg)
Caracteristiques d’un bon compilateur
1 Le code cible produit doit etre correct.
2 Le code produit est bien optimise.
3 L’executable est rapide.
4 Le processus de compilation est rapide.
5 Permettre la compilation separee.
6 Avoir un tres bon debogueur.
7 Detecter le plus grand nombre possible des erreurssemantiques.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 161: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/161.jpg)
Caracteristiques d’un bon compilateur
1 Le code cible produit doit etre correct.
2 Le code produit est bien optimise.
3 L’executable est rapide.
4 Le processus de compilation est rapide.
5 Permettre la compilation separee.
6 Avoir un tres bon debogueur.
7 Detecter le plus grand nombre possible des erreurssemantiques.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 162: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/162.jpg)
Caracteristiques d’un bon compilateur
1 Le code cible produit doit etre correct.
2 Le code produit est bien optimise.
3 L’executable est rapide.
4 Le processus de compilation est rapide.
5 Permettre la compilation separee.
6 Avoir un tres bon debogueur.
7 Detecter le plus grand nombre possible des erreurssemantiques.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 163: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/163.jpg)
Caracteristiques d’un bon compilateur
1 Le code cible produit doit etre correct.
2 Le code produit est bien optimise.
3 L’executable est rapide.
4 Le processus de compilation est rapide.
5 Permettre la compilation separee.
6 Avoir un tres bon debogueur.
7 Detecter le plus grand nombre possible des erreurssemantiques.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 164: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/164.jpg)
Caracteristiques d’un bon compilateur
1 Le code cible produit doit etre correct.
2 Le code produit est bien optimise.
3 L’executable est rapide.
4 Le processus de compilation est rapide.
5 Permettre la compilation separee.
6 Avoir un tres bon debogueur.
7 Detecter le plus grand nombre possible des erreurssemantiques.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 165: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/165.jpg)
Caracteristiques d’un bon compilateur
1 Le code cible produit doit etre correct.
2 Le code produit est bien optimise.
3 L’executable est rapide.
4 Le processus de compilation est rapide.
5 Permettre la compilation separee.
6 Avoir un tres bon debogueur.
7 Detecter le plus grand nombre possible des erreurssemantiques.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation
![Page 166: Chapitre 4 : Introduction à la compilationChapitre 4 : Introduction `a la compilation Prof. Abdelmajid Dargham Facult´e des Sciences, Oujda Fili`ere SMI - S4 Module Th´eorie des](https://reader030.vdocuments.us/reader030/viewer/2022040601/5e90902f198a160156345648/html5/thumbnails/166.jpg)
Caracteristiques d’un bon compilateur
1 Le code cible produit doit etre correct.
2 Le code produit est bien optimise.
3 L’executable est rapide.
4 Le processus de compilation est rapide.
5 Permettre la compilation separee.
6 Avoir un tres bon debogueur.
7 Detecter le plus grand nombre possible des erreurssemantiques.
Prof. Abdelmajid Dargham Chapitre 4 : Introduction a la compilation