Cours compilation Cours de compilation Pr Ghizlane BENCHEIKH A U - Chapitre I Introduction aux compilateurs I Qu ? est ce qu ? un compilateur Dé ?nition Un compilateur est un programme exécutable logiciel qui permet de Lire un programme écrit en un langag
Cours de compilation Pr Ghizlane BENCHEIKH A U - Chapitre I Introduction aux compilateurs I Qu ? est ce qu ? un compilateur Dé ?nition Un compilateur est un programme exécutable logiciel qui permet de Lire un programme écrit en un langage de haut niveau langage source et le traduit vers un programme écrit en un langage de plus bas niveau langage cible Signaler des erreurs de syntaxe de sémantique par exemple via une véri ?cation de type Dans certains cas faire des optimisations qui peuvent viser plusieurs objectifs parfois contradictoires vitesse d ? exécution taille du code utilisation de la mémoire etc Exemples Exemples de langage compilés Fortran C C Pascal ADA ? Exemples de compilateurs pour le langage C Dev ?? C LCC Win Code block Borland C Visual C ? II La structure d ? un compilateur La compilation se décompose en deux phases contenant chacune plusieurs modules Une phase d ? analyse qui va reconna? tre les variables les instructions les opérateurs détecter les erreurs et élaborer une représentation intermédiaire Une phase de synthèse et de production qui devra produire le code cible à partir de cette représentation intermédiaire Dé ?nition Un arbre abstrait est constitué de n ?uds qui représentent les opérations et les ?ls des n ?uds qui représentent les arguments des opérations Exemple Soit l'instruction A B B Son arbre abstrait est Dessiner l ? arbre abstrait des expressions A B C D A BCD A B C D A BC DE C Phase d ? analyse La phase d ? analyse est réalisée par la partie frontale du compilateur elle permet de découper le programme source en ses constituants variables instructions ? Analyse lexicale détecter des erreurs de syntaxe Analyseur syntaxique détecter des erreurs de sémantique Analyse sémantique produire une représentation intermédiaire du programme source Générateur de code intermédiaire conserver dans une table des symboles diverses informations sur les procédures et variables du programme source Analyse lexicale Elle lit le programme source lettre par lettre et le décompose en unités lexicales appelées lexèmes Token en anglais Spéci ?e la nature de chaque unité lexicale qu ? il s ? agisse d ? identi ?cateurs de constantes réelles entières cha? nes de caractères des opérateurs a ?ectation addition des séparateurs parenthèses points virgules les mots clés du langage if else while int oat ? Elimine les caractères super us commentaires espaces passages à la ligne Exemple considérons le code C suivant if i a b ceci est un commentaire x x L ? analyseur lexical déterminera la suite de token MOTCLÉ SÉPARATEUR IDENTIFICATEUR OPÉRATEURREL IDENTIFICATEUR OPÉRATEURARITH IDENTIFICATEUR SÉPARATEUR IDENTIFICATEUR AFFECTATION CONSTANTE OPÉRATEURARITH IDENTIFICATEUR SÉPARATEUR Mot clé identi ?cateur identi ?cateur Séparateur Oprel Oparith À éliminer if i a b ceci est un commentaire x x Analyse syntaxique Il s agit de véri ?er que les unités lexicales sont dans le bon ordre dé ?ni par le langage L ? analyseur syntaxique sait comment doivent être construites les expressions les instructions les déclarations de
Documents similaires










-
37
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 09, 2021
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 77kB