Rapp els et compléments de compilationAnalyses lexicale et syntaxiqueCours de Compilation A vancée (MI190)Benjamin CanouUniversité Pierre et Maire CurieAnnée 2010/2011 – Semaine 1. . . . . .Rapp els. . . . . .Qu’est-ce que la compilation ?Princip e de base de la :T raduction du co de source vers du co de machine ( co de natif )..Compilateur .Machine. .src. .exe. . . . . .Qu’est-ce que la compilation ?Compilation p our une machine virtuelle ( VM ):Pro duction de co de-o ctet (b yteco de) interp rété ou compilé à lavolée vers du co de machine..Compilateur. .Machinemachine. .src. exe.abstraite. . . . . .Qu’est-ce que la compilation ?Compilation sépa rée :Liaison de fichiers objet , un fichier objet pa r unité decompilation du langage ( classe, mo dule, package, etc. ).src. obj...Compilateur .Éd. de liens .Machinemachine. ..src obj. .exeabstraite.src obj.. . . . . .Qu’est-ce que la compilation ?Utilisation d’une bibliothèque d’exécution ( runtime ) :p our le supp o rt des langages de haut niveau ( gestion mémoire,entrées/so rties, cha rgement dynamique, app els de métho ds,continuations, etc. ).I VM : intégré dans la machine virtuelleI Co de natif : lié dans l’exécutablesrc. .obj.Compilateur. Éd.. de liens .Machinemachine. .src. exe.obj.abstraite.src .objbib.. d’exécution. . . . . .Qu’est-ce que la compilation ?T ransfo rmations source-à-source :I Prép ro cesseur : même langage de so rtie, p our netto y er,appliquer des macros, ...
Rappels et complments de compilation Analyses lexicale et syntaxique
Cours de Compilation Avance (MI190)
Benjamin Canou Universit Pierre et Maire Curie
Anne 2010/2011 – Semaine 1
Rappels
Qu’ st-ce que la compilation ? e
Principe de base de la compilation : Traduction ducode sourcevers ducode
src
Compilateur
exe
Machine
machine
(code
natif).
Qu’est-ce que la compilation ?
Compilation pour une machine virtuelle (VM): Production decode-octet(bytecode)interprt ou compil vole vers du code machine.
src
Compilateur
exe
machine abstraite
Machine
à
la
Qu’est-ce que la compilation ?
Compilation spare : Liaison defichiers objet, un fichier objet parunit de compilationdu langage (classe, module, package, etc.).
src src
src
Compilateur
obj obj
obj
obj
d. de liens
exe
machine abstraite
Machine
Qu’est-ce que la compilation ?
Utilisation d’unebibliothque d’excution(runtime) : pour le support des langages de haut niveau (gestion mmoire, entres/sorties, chargement dynamique, appels de mthods, continuations, etc.). VM :intgr dans la machine virtuelle Code natif :li dans l’excutable
II
src src
src
obj Compilateurobjd.deliensexeambasctrhine aite
obj
obj
bib. d’excution
Machine
Qu’est-ce que la compilation ?
Transformations source-à-source :
II
src src src
Prprocesseur :mme langage de sortie, pour nettoyer, appliquer des macros, etc. Traduction (compilation) :utilisation d’un langage existant comme cible. Comme pour une VM, il faut ventuellement une bibliothque d’xcution.
src obj teur d. de liens machine Compila obj abstraite src exe src obj
bib. d’excution
Machine
Chane de compilation classique
code source Analyse lexicale# suite de mots Analyse syntaxique# abre de syntaxe abstraite (AST) Analyses smantiques# AST typ Simplification, optimisations# langage intermdiaire mission de code# code objet
Informations sur le cours
Premire partie : Cours parBenjamin Canou, TD/TME parPhilippe Trebuchet
IIII
Cours 1 :Rappels, analyseurs Cours 2 et 3 :Machines virtuelles et bibliothques d’excution Cours 4 :Modles mmoire Cours 5 :Contrle de haut niveau, paralllisme
Deuxime partie : Cours et TD/TME parKarine Heydemann architecture machine et optimisation de code, mmoire cache, paralllisme d’instructions Notation : Un examen 60% Un projet par partie (20% + 20%)
II
Analyses
lexicale
et
syntaxique
Syntaxe d’un langage
Les langages de programmation sont plus simples que les langues humaines, mais sont dcrits de la mme façon.
III
Langage :ensemble des phrases possibles.
Phrase :suite de mots correcte par rapport à une grammaire.