Compilation introduction Cours de compilation USDB ème année licence SI INTRODUCTION Mr HAMMOUDA Mohamed Qu'est ce qu'un compilateur Un compilateur est un logiciel qui traduit un programme source écrit dans un langage de haut niveau en un programme équiva
Cours de compilation USDB ème année licence SI INTRODUCTION Mr HAMMOUDA Mohamed Qu'est ce qu'un compilateur Un compilateur est un logiciel qui traduit un programme source écrit dans un langage de haut niveau en un programme équivalent écrit dans un langage cible appelé aussi programme objet Ce langage cible peut être Le langage machine - L'assembleur - Ou un langage intermédiaire On peut distinguer aussi d'autres formes de compilation Les interpréteurs contrairement aux compilateurs un interpréteur analyse et exécute les instructions du programme source une après l'autre Les traducteurs la compilation peut être aussi une traduction d'un langage à un autre par exemple du C vers JAVA ou d'un format à un autre par exemple du Word vers HTML Les qualités d'un compilateur ?? Le programme cible doit être équivalent au programme source ?? Le temps de compilation doit être proportionnel à la taille du programme source ?? Le code produit doit être e ?cace en temps et en espace ?? Le diagnostique d'erreurs doit être de très bonne qualité ?? La possibilité d'utiliser un debugger sur le code produit Structure d'un compilateur La compilation se décompose en deux phases ?gure Une phase d'analyse partie frontale qui permettra de reconnaitre les variables les instructions les opérateurs ? et élaborer la structure syntaxique du programme ainsi que certaines propriétés sémantiques Une phase de synthèse et de production partie ?nale qui consiste en la production du code Code Source Partie frontale Table des symboles Représentation intermédiaire Partie ?nale Code cible Gestionnaire des erreurs Figure phases de compilation La table des symboles et le gestionnaire des erreurs sont des phases parallèles CCours de compilation USDB ème année licence SI Table des symboles Mr HAMMOUDA Mohamed C'est une structure de données utilisée pour stocker des informations concernant les variables du programme source le type l'emplacement en mémoire la portée la visibilité ? Gestionnaire des erreurs Il a pour rôle de détecter et d'informer l'utilisateur le plus précisément possible des erreurs rencontrées les erreurs de syntaxe de sémantique ? ? ? ? Les étapes de la phase d'analyse ?gure Analyse lexicale scanner appelée aussi analyse linéaire Eliminer les caractères super us identi ?er les mots qui composent le texte ? Les outils les expressions régulières les automates à états ?nis Analyse syntaxique parser appelée aussi analyse hiérarchique ou grammaticale Il s'agit de découvrir la structure du programme source et de véri ?er s'il respecte la grammaire du langage Les outils les grammaires les automates à pile Analyse sémantique appelée aussi analyse contextuelle Il s'agit de véri ?er certains aspects sémantiques les déclarations les types la consistance des expressions ? Les outils la dé ?nition dirigée par la syntaxe DDS Les étapes de la phase de synthèse Génération du code En général un compilateur produit un code intermédiaire pour une machine virtuelle qui traduit par la suite en code machine Outils la traduction dirigée par la syntaxe TDS Optimisation du code Il s'agit d'améliorer le code produit a ?n d'augmenter son e ?cacité éliminer les calculs
Documents similaires










-
57
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Aucune attribution requise- Détails
- Publié le Jui 20, 2021
- Catégorie Management
- Langue French
- Taille du fichier 52.5kB