Last Updated on juillet 19, 2023 by eBoik
Télécharger gratuitement résumé et cours complet de Compilation PDF S5. Bachelor / Licence en Informatique (3ème année SMI L3). Pour les TD, QCM, exercices corrigés, examens, livres… vous trouverez les liens au bout de cette page. Tout en PDF/PPT, Tout est gratuit.
Présentation du Cours Compilation

Introduction
- Au début de l’informatique on programme directement les ordinateurs en langage machine,
- Tâche assez dur,
- Solution: utiliser les possibilités de l’informatique pour faciliter le travail de programmation.
- Un ordinateur représente toutes les informations (données et programmes) par des suites de 0,1,
- Le programmeur utilise des langages proches du langage humain !!
- Solution: un traducteur <=> compilateur/ interpréteur
Langages compilés/interprétés
Langages compilés : Se sont des langages où toutes les instructions sont traduites en code objet avant d’être exécutées cette conversion est effectuée par un compilateur.
Langages interprétés : Se sont les langages dont les instructions sont décodées et exécutées instruction/instruction lors de l’exécution du programme à l’aide d’un traducteur appelé interprète.
Famille des langages
- Langages de bas niveau (1ère et 2ème génération) :
- Le langage machine,
- L’assembleur.
- Langages de haut niveau (3ème génération) :
- les langages procéduraux (Fortran, Cobol, Basic, Pascal, Langage C, …)
- les langages orientés objet (SIMULA, C++, Java, SMALTALK, Object Pascal, EIFFEL, …)
- les langages orientés listes (LISP, PROLOG, PYTHON, …)
- Langages de 4éme génération : se sont des langages créés pour des applications spécifiques (SQL, NOMAD, …)
- Remarque : d’autres classifications peuvent être adoptés, telles que :
- Les langages déclaratifs (C, C++, Java, C#…)
- Les langages fonctionnels (ML, HASKELL,…)
- Les langages de scripts (Awk, Javascript, Php, Perl, Python, Ruby, Tcl,…)
Les compilateurs
Un compilateur est un programme qui lit le programme écrit dans un premier langage (langage source) et le traduit en un programme équivalent écrit dans un autre langage ‘’langage cible’’ ou langage destination.
La compilation est composée de deux parties essentielles : l’analyse et la synthèse.
- L’analyse: la partition du programme source en ces constituants et en créant une représentation intermédiaire.
- La synthèse : génère le programme cible à partir de la représentation intermédiaire.
Remarque: au cours du processus de traduction un rôle important du compilateur est de signaler à l’utilisateur la présence des erreurs dans le programme source.
Remarque : Pendant l’analyse les opérations de spécifiées par le programme source sont déterminées et conservées dans une structure hiérarchique appelée arbre abstrait chaque nœud de l’arbre représente une opération et les fils des nœuds représentent les arguments de cette opération.
Plan du Cours
Automates finis et expression régulière.
Grammaires hors contexte et automates à pile.
Analyse lexicale.
Analyse syntaxique.
Analyse sémantique.
Génération de code intermédiaire.
Optimisation du code
Télécharger Cours de Compilation PDF
Cours – Chapitre 1 : Introduction générale
Chapitre2 : Analyse lexicale
Chapitre3 : Analyse syntaxique
Mini projet compilation
Principes et Techniques de Compilation
Course LEX & YACC TUTORIAL (english)
NOTE: N’oubliez pas de voir des TD, QCM, Exercices et Examens de Compilation. Liens dans la section ci-dessous.
Exercices & Examens de Compilation
Pour télécharger les QCM, exercices et examens de Compilation, Cliquez sur les liens ci-dessous.
NOTE: N’oubliez pas de voir les autres Unités d’enseignements (matières/modules) de Informatique. Liens dans la section ci-dessous.
Autres Modules d’Informatique
Tourner à la page principale d’Informatique pour voir la totalité des modules (cours, résumés, formation, exercices, td, examens, qcm, livres).
Ou visiter directement les cours de la filière Informatique à partir de ces liens ci-dessous:
- Bases de données
- Compilation
- Réseaux informatiques
- Recherche opérationnelle
- Conception orientée objects – UML
- Programmation orientée objets (Langage: Java ou C++)
C’est bon pour moi
ça m’a fait plaisir 🙂