Cours de compilation

Disponible uniquement sur Etudier
  • Pages : 9 (2155 mots )
  • Téléchargement(s) : 0
  • Publié le : 28 décembre 2010
Lire le document complet
Aperçu du document
Cours de Compilation 2008/2009
M1 informatique – Université Paris Diderot

2

Chapitre 1

Introduction
1.1 Détails pratiques

Emploi du temps – cours : mercredi de 12h30 à 14h30 en Amphi 4C (normalement) – TD/TP : début la semaine prochaine (en salle de TP) – Chargés de TD/TP : Jaap Boender, Mehdi Dogguy, Grégoire Henry

Contrôle des connaissances – Gros projet obligatoire par 3. –Note individuelle. – 1re partie à rendre en novembre – 2e partie et soutenance : début janvier 2010 – Examen final : janvier 2010 – Note Janvier : 1 note projet + 1 exam Janvier 2 2 1 – Session de rattrapage : 1 note projet + 2 exam Juin 2

Checklist – inscrivez-vous tout de suite sur la mailing list : https://sympa.mancoosi.univ-paris-diderot.fr/wws/info/m1-compilation – marquez la page web ducours dans vos signets : http://www.pps.jussieu.fr/~balat/compilation – commencez à réviser OCaml – Formez vite vos groupes pour le projet (maximum 3 personnes) 3

1.2 Généralités
1.2.1 Introduction : dictionnaire
Généralités : le terme « compilateur » compilateur (Le Petit Robert) « Personne qui réunit des documents dispersés » compilation (Le Petit Robert) « Rassemblement de documents » Maisle programme qui « réunit des bouts de code dispersés » s’appelle aujourd’hui un Éditeur de Liens (commande ld) Le terme « compilateur » On appelle « compilateur » une autre chose : com·pil·er (Webster) 1 : one that compiles 2 : a computer program that translates an entire set of instructions written in a higher-level symbolic language (as COBOL) into machine language before the instructions canbe executed

1.2.2

Le cours

Ce cours « De l’AST à l’exécutable » Suite du cours Analyse et compilation de L3 Support de cours : Plan (provisoire) du cours 1. Notions préliminaires : structure d’un compilateur (front-end, back-end, cœur) 2. Description de la machine cible (MIPS R2000), Assembleur 3. Analyse lexicale et syntaxique : bref rappel sur Lex, OCamlLex, Yacc, OCamlYacc Arbre desyntaxe abstraite : structure et représentation 4. Compilation des langages à blocs : bloc d’activation, lien statique 5. Interface entre front-end et cœur : le code intermediaire (génération, optimisation, linéarisation) 6. Génération du code assembleur 7. Allocation des registres par coloriage de graphe 8. Extensions : – typage des types récursifs ; – compilation des langages à objets ; 4d’après Roberto Di Cosmo (cours 2005/2006)

– compilation des langages fonctionnels ; – machines virtuelles ; – algèbre des T pour la génération et le bootstrap des compilateurs.

Bibliographie – Compilers : Principles, Techniques and Tools (dragon book). Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman, Addison-Wesley. Version française à la bibliothèque. – Modern Compiler Implementation in ML.AndrewAppel, Cambridge University Press http://www.cs.princeton.edu/~appel/modern/ml/ – Développement d’applications avec Objective Caml Emmanuel Chailloux, Pascal Manoury, Bruno Pagano, O'Reilly. Bibliothèque et en ligne (http://www.pps.jussieu.fr/Livres/ora/DA-OCAML/index.html). – Manuel OCaml en ligne : http://caml.inria.fr/pub/docs/manual-ocaml/index.html – Mars, un simulateur RISC 2000http://courses.missouristate.edu/KenVollmar/MARS/

Le projet Compilateur CTigre vers MIPS Implémentation en OCaml Exécution avec l’émulateur MARS

1.2.3

Définitions

Notions (abstraites) de base machine hardware : le processeur (...) machine virtuelle : une machine qui reconnaît un certain nombre d’instructions qui ne sont pas (toutes) « natives » pour la machine hardware. Exemples : – Les machinesvirtuelles Java, OCaml, .net Compilation vers du bytecode (code-octet) indépendant de la machine hardware – Le compilateur C produit du code assembleur qui fait appel à un ensemble de fonctions système (ex. : les E/S). Donc il produit du code pour la machine virtuelle définie par : instructions hardware + appels système. Qu’est-ce qu’un interpréteur (ou interprète) ? Definition 1 (Interpréteur). Un...
tracking img