Cours compilation Cours de compilation Denis Barthou dbarthou enseirb fr Cours compilation - D Barthou CSujets abordés en compilation Description d'un compilateur Description des langages de programmation Analyse de code optimisation Méthodes de typage Pr

Cours de compilation Denis Barthou dbarthou enseirb fr Cours compilation - D Barthou CSujets abordés en compilation Description d'un compilateur Description des langages de programmation Analyse de code optimisation Méthodes de typage Problèmes théoriques graphes langages et pratiques faire un compilateur Cours compilation - D Barthou CSujets abordés en compilation Description d'un compilateur Description des langages de programmation Analyse de code optimisation Méthodes de typage Problèmes théoriques graphes langages et pratiques faire un compilateur Dans ce module Cours et TD sur les aspects théoriques sur les méthodes de compilation Scéances pratiques sur les outils de compilation sur l'asm x Projet de compilation Cours compilation - D Barthou C - Introduction Intérêt de la compilation Outil incontournable quelque soit le langage Meilleure connaissance des compilateurs ? meilleure programmation Techniques de compilation réutilisables dans nombreux contextes notamment analyse de code Sujet actif de recherche ?? Langages pour le parallélisme pour les machines avec accélérateurs matériels ?? Domain Speci ?c Languages ?? Compilation pour l'embarqué Cours compilation - D Barthou C - Introduction Description d'un compilateur De ?nitions Un compilateur est un programme qui prend en entrée un programme et le transforme en un autre programme Un interpréteur est un programme qui prend en entrée un programme et l'exécute Le compilateur est un traducteur L'interpréteur une machine virtuelle Cours compilation - D Barthou C - Introduction Description d'un compilateur De ?nitions Un compilateur est un programme qui prend en entrée un programme et le transforme en un autre programme Un interpréteur est un programme qui prend en entrée un programme et l'exécute Le compilateur est un traducteur L'interpréteur une machine virtuelle Langages compilés ou interprétés C Java perl lisp sql assembleur Compilateur interpréteur ou autre chose LaTeX make visualiseur postscript matlab Cours compilation - D Barthou C - Introduction Objectifs possibles du compilateur Préserver la sémantique obligatoire Générer un code le plus rapidement possible Trouver toutes les erreurs lexicales syntaxiques et sémantiques ?? Prouver que le code généré est correct que le code d'entrée respecte une spec Générer un code ?? S'exécutant le plus rapidement possible ?? Consommant le moins d'énergie possible ?? Le plus petit possible Cours compilation - D Barthou C - Structure du compilateur Décomposition en couches Analyse lexicale lit le programme reconnait chaque mot Analyse syntaxique véri ?e la grammaire Analyse sémantique véri ?e le sens du programme ex types RI une interface séparant les front-end middle-end et backend du compilateur Cours compilation - Exécutable langage A Analyse lexicale Analyse syntaxique Analyse sémantique Génération de representation intermédiaire RI Optimisation de RI Génération de code Optimisation Exécutable langage B D Barthou C - Structure du compilateur Décomposition en couches Changement de langage d'entrée On ne change que le front-end Exécutable langage C Analyse lexicale Analyse syntaxique Analyse sémantique Génération de representation intermédiaire RI Optimisation de RI Génération de code Optimisation Cours compilation - Exécutable langage B D Barthou C - Structure du compilateur Décomposition en couches Changement de langage cible On ne change que le back-end Exécutable langage A Analyse

Documents similaires
  • 33
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Aucune attribution requise
Partager