Compilation cours en 17 pages
Cours de compilation Introduction Un compilateur est un logiciel de traduction d ? un langage source vers un langage cible D ? ordinaire le langage source est un langage de programmation ?evolu ?e comme C ou Java par exemple le langage cible un code machine pr ?evu pour programmer un ordinateur en particulier Un compilateur contient plusieurs modules ?? analyseur lexical ?? analyseur syntaxique ?? analyseur s ?emantique ?? g ?en ?erateur de code interm ?ediaire ?? optimiseur de code ?? g ?en ?erateur de code Il gere une table des symboles d ?etecte et signale un ensemble d ? erreursa chaque niveau d ? analyse et produit le code qui servira a la programmation Le compilateur entre dans un processus d ? ?elaboration des programmes et n ? est qu ? un des rouages permettant de construire un programme Nous distinguons le compilateur des outils qui sont utilis ?es en amont Editeur Pr ?eprocesseur et des outils qui sont utilis ?es en aval Assembleur lieur chargeur Sources ? Pr ?eprocesseur ? Programme source ? Compilateur ? programme cible ? Assembleur ? Lieur-chargeur Fig ?? Contexte du compilateur Les phases et le r ?esultat peuvent etre di ? ?erents d ? un compilateura un autre ?? Interpr ?etation pluto t que compilation proprement dite Postscript Shell HTML ?? Production de code portable bytecode pour machine virtuelle et non de code d ?edi ?e a une machine en particulier P- code java NET ?? Langages sources plus ou moins structur ?es L ? assembleur par exemple est tres peu structur ?e il pr ?esente des instructions machines des directives des ?etiquettes ?? Optimisations plus ou moins pouss ?ees ?? Analyse des erreurs plus ou moins pouss ?ees Exemple PGCD int PGCD int a int b Cwhile b a if a b a a ??b else ? Echanger a et b ? int tmp tmp a a b b tmp return a Analyse lexicale commentaires mots r ?eserv ?es constantes identi ?cateurs Analyse syntaxique Transforme le code en arbre fonction pgcd type int parametres contenu SUCC type int type int while return if b a a - b a a b Fig ?? arbre syntaxique Analyse s ?emantique g ?en ?eration de code interm ?ediaire ?? Types CPGCD int ? int ? int a int b int ?? Instructions SU CC W HILE T EST a b IF T EST a b AF F a OP ?? a b SU CC BLOC V AR tmp int AF F tmp a SU CC AF F a b AF F b tmp RET U RN a Analyse lexicale Entit ?es lexicales token D ?e ?nition par des expressions rationnelles L ? analyseur est un automate ?ni dont les ?etats terminaux sont associ ?es ades actions Expression rationnelle Soit un alphabet A un ensemble rationnel est Ensemble ?ni de mots Concat ?enation d ? ensembles rationnels R R It ?eration d ? ensembles rationnels R Union d ? ensembles rationnels R ?? R Exemple Alphabet
Documents similaires










-
38
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Aucune attribution requise- Détails
- Publié le Aoû 31, 2022
- Catégorie Law / Droit
- Langue French
- Taille du fichier 101.6kB