Compilation

Synoptique

Prof Site Cours TP TD ECTS
Eric VIOLARD http://icps.u-strasbg.fr/~violard/ 28h 12h 20h 6
Contenu
Structure d'un compilateur.
Analyse lexicale. Analyse syntaxique descendante et ascendante.
Analyseurs LL(1), SLR (1), LR (1) et LALR (1).
Grammaires attribuées et notion d'actions sémantiques.
Traitement des erreurs.
IV. Production de code intermédiaire.
V. Gestion de la table des symboles.
VI. Optimisation de code.
Génération de code objet.
Pre-requis
Bonnes connaissances en théorie des langages, des notions de grammaires et d'automates.

Bibliographie

  1. “Compilateurs: Principes, techniques et outils,” A. Aho, R. Sethi, T. Ullman (2000), ou la 2e édition (2007) EUR 65 (923 pages!)
  2. “Lex et Yacc”, J. R. Levine, T. Mason, D. Brown (1992) [actuellement indisponible]
  3. “Modern Compiler Design”, D. Grune, H. E. Bal, C. J. H. Jacobs, K. G. Langendoern (2000) [Eur 40 chez Amazon fr]

Remarques

Objectif de ce cours: comprendre et maîtriser la construction d'un compilateur.

Cette construction s'appuie sur des résultats de la théorie des langages:

  • Expressions rationnelles et automates (analyse lexicale)
  • Grammaire algébrique et automate à pile (analyse syntaxique)
  • Grammaire attribuée (génération de code intermédiaire)

Il existe des outils pour construire des compilateurs:

  • LEX : générateur d'analyseur lexical
  • YACC : générateur d'analyseur syntaxique
  • LLVM : infrastructure complète de compilateur (low level virtual machine?)

Cours

TDs et TPs

Lien Date Hrs. TD Hrs. TP
Analyse lexicale 23/09/2009 2 0
Analyse Syntaxique Descendante 30/09/2009 2 0
Analyse lexicale – exercices (f)lex 7/10/2009 0 2
Analyse Syntaxique Descendante – suite 14/10/2009 2 0
Analyse SLR(1) 21/10/2009? 2 0
Analyse Syntaxique 28/10/2009 0 2
Analyse SLR(1) 18/11/2009? 2 0
Examen passé 26/11/2009 2 0
Génération de code assembleur MIPS 27/11/2009 0 2
Optimisation de Code 2/12/2009 2 0
Code Assembleur MIPS 3/12/2009 2 0
Mise au point projets 9/12/2009 0 2

TP

 
m1ilc/compilation.txt · Dernière modification: 2010/01/04 18:07 par suitable
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante :CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki