Académique Documents
Professionnel Documents
Culture Documents
Plan
2
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
1
1- Les compilateurs (1)
3
Définition:
Un compilateur est un programme qui lit un programme écrit dans un premier langage (le
langage source) et le traduit en un programme équivalent dans un autre langage (le
langage cible).
Le compilateur doit aussi vérifier que le programme a un certain sens et signaler les erreurs
qu'il détecte.
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
2
2- Les phases d'analyse
5
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
3
4- Deux phases supplémentaires
7
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
Programme source
analyse lexicale
analyse syntaxique
analyse sémantique
optimisation
production du code
programme cible
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
4
6-Les phases et les outils utilisés
9
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
7- Les interprètes
10
Certains langages ont deux versions, une compilée et une autre interprétée.
Exemples: caml, lisp, scala
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
5
8- Les 3 grandes catégories de langages
11
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
Meilleurs langages en 2019 selon l'IEEE : Python leader pour la troisième année consécutive
Il s'impose dans tous les domaines dans lesquels il est utilisé, du développement web à
l'embarqué
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
6
9- Le classement des langages (2)
13
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
https://pypl.github.io/PYPL.html
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
7
9- Le classement des langages (4)
15
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
8
Bibliographie:
17
Livres de référence:
1- A. Aho, M. Lam, R. Sethi et J. Ullman,
"Compilateurs: principe, techniques et outils", Pearson Education.
2- J. Menu, " Compilateurs avec C++", Addison - Wesley.
3- R. Wilhelm et D. Maurer, "Les compilateurs: théorie, construction, génération",
Masson
4- J.E.F. Friedel, "Maîtrise des expressions régulières", O'Reilly
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
Webographie:
18
2- Cours de compilation, ENS de Lyon, Christophe Alias, cours, TD, TP, examens et
partiels
http://perso.ens-lyon.fr/christophe.alias/teaching/compilation_M1_ENS_Lyon/index.html
9
Outils
19
Dev-C++: http://www.commentcamarche.net/download/telecharger-59-dev-c
Nous aurons un fichier exécutable: Dev-Cpp_5.9.2_TDM-GCC_4.8.1_Setup
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
COMPILATION TP1
EMSI - 4ÈME IIR
2023/2024
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R. Filali
10
Rappel: traitement de caractères
21
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
11
Utilisation du type string
23
Série 1: TP généralités
24
12
Exercice1(Solution) : TP1_Exo1.cpp
25
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
Série1: TP généralités
26
Exercice 2:
Ecrire un programme qui implante un automate qui indique si un nombre
est constitué d'un nombre paire ou impaire de ‘a’.
a
début
0 1
paire a impaire
13
Exercice2(Solution) : TP1_Exo2.cpp
27
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI I Compilation EMSI 4ème année IIR 2023/24
Série1: TP généralités
28
Exercice 3:
1. Proposer un automate à états finis déterministe qui
reconnait les mots sur l’alphabet {a, b} qui contiennent
au moins 2 ‘b’.
2. Ecrire un programme qui implante cet automate et
donne le nombre de ‘b’ dans la chaine.
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
14
Exercice3(Solution) : TP1_Exo4.cpp
29
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
Série 1: TP généralités
30
Exercice 4:
Ecrire un programme ayant pour effet de synthétiser des
expressions arithmétiques composées du seul chiffre 4, des
quatre opérateurs +, -, *, / et les parenthèses (,).
Par exemple : on peut écrire : "2 = (4+4)/4" et "5=4+(4/4)".
On teste ce programme pour les entiers de 1 à 19.
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
15
Exercice 4
31
Déroulement de l’Algorithme :
Entier Représentation
1 4/4
2 (4+4)/4
3 4-(4/4)
4 4
5 4 + 1 = 4 + 4/4
6 4 + 2 = 4 + (4+4)/4
7 4 + 3 = 4 + (4-(4/4))
8 4 * 2 = 4 * ((4+4)/4)
9 4 * 2 + 1 = 4 * ((4+4)/4) + 4/4
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
Profs. M.D. RAHMANI, F.Z. TIJANE BADRI & R.FILALI Compilation EMSI 4ème année IIR 2023/24
16