Intro comp il Introduction à la compilation Un compilateur est un programme qui traduit un autre programme programme source compilateur programme cible messages d'erreur Premier compilateur compilateur Fortran de J Backus Langage source langage de haut ni

Introduction à la compilation Un compilateur est un programme qui traduit un autre programme programme source compilateur programme cible messages d'erreur Premier compilateur compilateur Fortran de J Backus Langage source langage de haut niveau C C Java Pascal Fortran Langage cible langage de bas niveau assembleur langage machine CBibliographie Aho Sethi Ullman Compilateurs Principes techniques et outils Pearson Education France http igm univ-mlv fr laporte compil plan html Ce support de cours est inspiré du manuel ci- dessus et du cours de Dominique Perrin CCousins des compilateurs Interpréteurs Di ?èrent d'un compilateur par l'intégration de l'exécution et de la traduction Utilisés pour les langages de commande Formateurs de texte Traduit le code source dans le langage de commande d'une imprimante Préprocesseurs E ?ectuent des substitutions de dé ?nitions des transformations lexicales des dé ?nitions de macros etc CL'environnement d'un compilateur squelette de programme source préprocesseur code machine absolu chargeur code relogeable programme source prétraité bibliothèque éditeur de liens compilateur code relogeable programme cible en langage d'assemblage assembleur Liens avec l'éditeur et le débogueur Les compilateurs industriels produisent directement du code relogeable CLes phases de la compilation programme source analyseur lexical gestion de la table des symboles analyseur syntaxique analyseur sémantique générateur de code intermédiaire gestion des erreurs optimiseur de code générateur de code cible programme cible CAnalyse lexicale Analyse du programme source en constituants minimaux les lexèmes On passe de position initial vitesse à id id id Les identi ?cateurs rencontrés sont placés dans la table des symboles Les blancs et les commentaires sont éliminés CAnalyse syntaxique On reconstruit la structure syntaxique de la suite de lexèmes fournie par l'analyseur lexical instruction d'a ?ectation identi ?cateur position expression expression expression identi ?cateur initial Arbre de dérivation expression identi ?cateur vitesse expression nombre CGénération de code intermédiaire Programme pour une machine abstraite Représentations utilisées - Code à trois adresses temp inttoreal temp id temp temp id temp id temp - Arbres syntaxiques C Optimisation de code Elimination des opérations inutiles pour produire du code plus e ?cace temp inttoreal temp id temp temp id temp id temp temp id id id temp La constante est traduite en réel ottant à la compilation et non à l'exécution La variable temp est éliminée CGénération de code cible La dernière phase produit du code en langage d'assemblage Un point important est l'utilisation des registres temp id MOVF id R id id temp MULF R MOVF id R ADDF R R MOVF R id F ottant La première instruction transfère le contenu de id dans le registre R La seconde multiplie le contenu du registre R par la constante Cposition initial vitesse Table des symboles analyseur lexical position initial vitesse id id id analyseur syntaxique id id id analyseur sémantique id id id inttoreal MOVF id R MULF R MOVF id R ADDF R R MOVF R id générateur de code cible temp id id id temp optimiseur de code temp inttoreal temp id temp temp id temp id temp générateur de code intermédiaire CPréprocesseurs

  • 31
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Aucune attribution requise
Partager
  • Détails
  • Publié le Fev 22, 2021
  • Catégorie Law / Droit
  • Langue French
  • Taille du fichier 41.7kB