Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
de compilation
Fadi Kacem
20152016
Introduction
• Comment fonctionne un langage de
programmation ?
Introduction
• Comment fonctionne un langage de
programmation ?
• Deux approches différentes pour implémenter
un langage de programmation:
Les Interpréteurs
Les Compilateurs
Introduction
• Comment fonctionne un langage de
programmation ?
• Deux approches différentes pour implémenter un
langage de programmation:
Les interpréteurs
Différences ?
Les compilateurs
Compilateur Vs Interpréteur:
Quelques analogies
I&T (Interprète et Traducteur) !
Compilateur Vs Interpréteur:
Quelques analogies
I&T (Interprète et Traducteur) !
Compilateur Vs Interpréteur:
Quelques analogies
Un vaisseau spatial en panne !
https://youtu.be/_C5AHaS1mOA
Compilateur Vs Interpréteur:
Comparaison
Interpréteur Compilateur
Une seule instruction à la fois Tout le code comme entrée.
comme entrée.
Pas de code objet Un code objet intermédiaire
intermédiaire généré. est généré.
Exécution lente. Exécution rapide après un
extra temps de préprocessing
Possibilité de voir les résultats Le résultat est disponible à la
au fur et à mesure. suite de l’exécution de tout le
programme.
Demande peu de mémoire. Demande plus de mémoire.
Interpréteur
Online
Programme
Données
I Résultats
Compilateur
Données
Offline
C
Exécutable
Programme
(Code machine)
Résultats
Un peu d’histoire
• En 1954, IBM construit la «704»: successeur du «701» et premier vrai
succès commercial des machines IBM.
• Cependant :
Software >> Hardware
Un peu d’histoire
• En 1953, première tentative pour
améliorer la productivité des
programmeurs « Speed Coding ».
Premier interpréteur.
+ Rapidité dans le développement
des programmes.
Occupe 30% de la mémoire (300 Octets)
Un peu d’histoire
• En 1954, premier langage compilé:
FORTRAN I (Formulas Translated).
• Projet réussi : 50% des programmes
écrits en FORTRAN en 1958.
Analyse lexicale
Analyse syntaxique
Analyse sémantique
Optimisation
Génération de code
Output: Code machine (bas niveau)
Structure d’un compilateur: vue générale
• Analyse lexical
Rôle
Lire le code source caractère par caractère et extraire les mots
(lexèmes) et les classes correspondantes
Exemple
« For i = 1 to 10 do print(i); »
For : Mot Réservé
I : Identifiant
= : Opérateur
1 : Entier
To : Mot Réservé
Etc...
Structure d’un compilateur: vue générale
• Analyse lexical
Les vacances sont terminées.
Structure d’un compilateur: vue générale
• Analyse lexical
Les vacances sont terminées.
FACILE !
Structure d’un compilateur: vue générale
• Analyse lexical
Les vacances sont terminées.
Lesva Can ceSsontTe RminéeS.
Structure d’un compilateur: vue générale
• Analyse lexical
Les vacances sont terminées.
Lesva Can ceSsontTe RminéeS.
MOINS FACILE !
Structure d’un compilateur: vue générale
• Analyse syntaxique
Rôle
Reconstruire la structure syntaxique à partir des
lexèmes reconnus et des classes correspondantes.
Exemple
Structure syntaxique de la phrase suivante ?
“ Le voisin sort en promenade”
Structure d’un compilateur: vue générale
• Analyse syntaxique
Rôle
Reconstruire la structure syntaxique à partir des
lexèmes reconnus et des classes correspondantes.
Exemple
“ Le voisin sort en promenade.”
article nom verbe préposition nom