In computing, a compiler is a computer program that translates computer code written in one programming language into another language. The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a lower level language to create an executable program.
3. SOMMAIRE
03
Quel rôle joue un
compilateur
02
Qu'est-ce que la
compilation en
informatique ?
05
La différence entre
langages compilés et
interprétés ?
01
C’est quoi
un compilateur ?
04
Quelles sont les étapes de
compilation d'un
programme ?
4. ETUDE D’UN COMPILATEUR
C'est un programme qui traduit un code source (compréhensible
par les humains : langage de programmation de haut niveau)
vers un langage cible (compréhensible par les machines: en code
binaire : langage de programmation de bas niveau ) en indiquant
les erreurs éventuelles que pourrait contenir le programme
source.
le but étant de générer un programme exécutable par un
ordinateur.
C’est quoi un
compilateur ?
5.
6. ETUDE D’UN COMPILATEUR
La compilation informatique désigne la transformation d’un
programme écrit en code source, en un programme transcrit en code
cible, ou binaire.
- le code source est rédigé dans un langage de programmation
(langage source), il est de haut niveau de conception et facilement
accessible à un utilisateur.
- Le code cible, quant à lui, est transcrit en langage de plus bas
niveau (langage cible), afin de générer un programme exécutable par
une machine.
Qu'est-ce que la
compilation en
informatique ?
7. ETUDE D’UN COMPILATEUR
Un compilateur est un sous-programme d’un
langage de programmation.
Il a pour rôle de vérifier que le programme
a un sens et de rechercher toutes les erreurs
possibles dans un programme source, telles
que des fautes d’orthographe, les variables, les
types …..
Quel rôle joue un
compilateur ?
8. ETUDE D’UN COMPILATEUR
Un programme se compile
selon une série de phases
Quelles sont les
étapes de
compilation d'un
programme ?
9. BACKGROUND
Traitements
parallèles
01 02 03
La partie synthèse
construit le
programme cible à
partir de cette
Représentation
intermédiaire.
La partie analyse
partitionne le
programme source
en ses constituants
et en crée une
représentation
intermédiaire.
10. ETUDE D’UN COMPILATEUR
PHASE D’ANALYSE PHASE DE SYNTHESE TRAITEMENT PARALLELES
1. Code
intermédiaire
2. Optimisation
3. production
du code
1. Table des
symboles
2. traitement
des erreurs
1. Analyse
lexical
2. Analyse
syntaxique
3. Analyse
sémantique
12. L'analyse lexicale (linéaire): le flot de
caractères formant le programme source est
lu de gauche à droite et groupé en lexèmes
(mots), qui sont des suites de caractères
ayant une signification collective
L'analyse syntaxique (grammaticale):
les unités lexicales sont regroupés
hiérarchiquement dans des collections
imbriquées (phrases) ayant une
signification collective.
01
L'analyse sémantique: contrôle pour
s'assurer que l'assemblage des
constituants du programme a un sens.
03
02
14. Le code intermédiaire c’est l’arborescence
qu'est le résultat de la phase d’analyse
Optimisation du code: Amélioration du
code intermédiaire pour que le code
final s'exécute plus rapidement et
utilise le minimum de mémoire.
01
Génération du code: Production du code
cible en langage d'assemblage.
03
02
16. Gestion de la table des symboles:
Une table des symboles est une
structure de données contenant un
enregistrement pour chaque
identificateur, muni de champs pour
ses attributs (emplacement mémoire,
son type, sa protée..).
01
Traitement des erreurs:
Chaque phase peut rencontrer des erreurs.
Après avoir détecté une erreur, une phase
doit la traiter de telle façon que la
compilation puisse continuer et que
d'autres erreurs dans le programme
puissent être détectées.
02
17. ETUDE D’UN COMPILATEUR
Le compilateur et l'interpréteur, les deux ont l'intention de faire le
même travail mais de façon diffèrent :
Un compilateur prend tout le programme et le convertit en
code objet qui est généralement stocké dans un fichier. Le code
objet est également référencé en tant que code binaire et peut être
exécuté directement par la machine après la liaison.
Un interpréteur exécute directement des instructions écrites
dans un langage de programmation ou de script sans les convertir
en un code objet ou un code machine.
La différence entre
langages compilés
et interprétés ?
20. CREDITS: This presentation template was created
by Slidesgo, including icons by Flaticon, and
infographics & images by Freepik
REALISER PAR :
MARIEM CHATTI
OUMAYMA JARRAR
NOUR ELHOUDA MOUSSA