0% ont trouvé ce document utile (0 vote)
5 vues5 pages

Phases essentielles de la compilation

Les phases de la compilation sont : 1) analyse lexicale, 2) analyse syntaxique, 3) analyse sémantique, 4) génération de code intermédiaire, 5) optimisation de code, et 6) génération de code objet. Chaque phase effectue des tâches spécifiques pour traduire le code source en un format exécutable de manière efficace sur la machine cible.

Transféré par

ScribdTranslations
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues5 pages

Phases essentielles de la compilation

Les phases de la compilation sont : 1) analyse lexicale, 2) analyse syntaxique, 3) analyse sémantique, 4) génération de code intermédiaire, 5) optimisation de code, et 6) génération de code objet. Chaque phase effectue des tâches spécifiques pour traduire le code source en un format exécutable de manière efficace sur la machine cible.

Transféré par

ScribdTranslations
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Phases de la compilation

Compiler est le processus de transformer un programme informatique écrit dans un langage en un


ensemble d'instructions dans un autre format ou langage. Un compilateur est un programme de
ordinateur qui effectue cette tâche. Les phases de la compilation sont des étapes séquentielles qu'un
un compilateur traverse pour convertir un code source écrit dans un langage de haut niveau en un
code objet exécutable. Chaque phase réalise un ensemble spécifique de tâches pour garantir que le
le programme doit être correctement traduit et exécuté de manière efficace sur la machine de destination.
Ces phases peuvent légèrement varier selon le compilateur, mais en général, elles peuvent être divisées en
les suivants :

Phase 1 : Analyse Lexicale (Scanner) :

L'analyse lexicale est la première phase d'un compilateur. Elle prend le code source modifié.
préprocesseurs de langue qui s'écrivent sous la forme de déclarations. L'analyseur lexical se
rompecesyntaxisenunaseriedefichas,quitandocualquierespacioenblancoolos
commentaires dans le code source.

Si l'analyseur lexical trouve un jeton non valide, une erreur est générée. L'analyseur lexical travaille
en étroite collaboration avec le parser de syntaxe. Lit des caractères courants depuis le code
source, vérifie les jetons, et passe les données à la syntaxe d'analyse lorsque cela est exigé.
Phase 2 : Analyse Syntaxique (Parseur) :
L'analyse syntaxique est la deuxième phase d'un compilateur. Dans ce chapitre, nous allons apprendre les
concepts de base utilisés dans la construction d'un analyseur.

Nous avons vu qu'un analyseur lexical peut identifier les jetons avec l'aide d'expressions.
réguliers et règles de motifs. Mais un analyseur lexical ne peut pas vérifier la syntaxe d'un
phrase en raison des limitations des expressions régulières. Les expressions régulières ne peuvent pas
vérifier l'équilibre des jetons, comme entre parenthèses. Par conséquent, cette phase utilise une grammaire libre de
contexte (CFG), qui est reconnu par la poussée des automates.
CFG, d'autre part, est un surensemble de la grammaire régulière, comme il est illustré ci-dessous :

Cela implique que chaque grammaire régulière est également libre de contexte, mais il y a quelques
problèmes qui dépassent le cadre de la grammaire régulière. CFG est un outil utile pour
décrire la syntaxe des langages de programmation.

Un analyseur syntaxique reçoit l'entrée d'un analyseur lexical sous forme de flux de tokens. Le
l'analiseur analyse le code source (token) par rapport aux normes de production pour détecter les
erreurs dans le code. Le résultat de cette phase est d'analyser un arbre.
De cette manière, l'analyseur effectue deux tâches, à savoir analyser le code et rechercher les erreurs.
générer une analyse d'arbre comme la sortie de l'étape.
On s'attend à ce que les analyseurs analysent tout le code, bien qu'il y ait quelques erreurs dans le programme.
Erreur lors de la récupération. Les analyseurs utilisent des stratégies que nous allons apprendre plus tard.
dans ce chapitre.

Analyse sémantique

L'analyse sémantique se charge de vérifier la signification du programme en termes de son


langage de haut niveau.
Vérifiez que les variables soient déclarées avant d'être utilisées, que les positions soient cohérentes, et que
que les opérations soient légales.

Vous pouvez effectuer des vérifications plus avancées, telles que le contrôle de flux et l'attribution de
mémoire.
La sémantique aide à interpréter les symboles, les sous-ensembles et leurs relations avec les autres. Analyse
sémantique les juges si la syntaxe structure construite dans le programme d'origine en dérive
signification ou non.

Phase 4 : Génération de code intermédiaire :

La phase de génération de code intermédiaire est une étape critique dans le processus de compilation.
L'objectif principal est de créer une représentation intermédiaire du programme qui soit indépendante de
la plateforme de destin, ce qui facilite l'optimisation et la portabilité du code.

Le code intermédiaire est un niveau d'abstraction entre le code source et le code machine et se
utilise pour faciliter l'optimisation et la portabilité.
Optimisation du code
L'optimisation du code est une phase au cours de laquelle le compilateur cherche à améliorer l'efficacité et le
performance du programme, transformation technique, qui vise à améliorer le code car
consomment moins de ressources (c'est-à-dire CPU, mémoire) et offrent une grande vitesse.

Dans l'optimisation de haut niveau général de la programmation, ils sont remplacés par des constructions très
efficace de bas niveau les codes de programmation. Un code processus en phase d'optimisation
debe seguir les trois règles qui sont expliquées ci-dessous :

Le code de sortie ne doit en aucun cas changer le sens du programme.


L'optimisation doit augmenter la vitesse du programme et si possible, le programme doit
exiger moins de ressources.
L'optimisation doit être rapide et ne doit pas retarder le processus de compilation général.
Dans cette phase, des techniques telles que la suppression de code mort et la propagation sont appliquées.
constantes et la réorganisation d'expressions pour réduire le temps d'exécution et l'utilisation de
ressources.

Phase 6 : Génération de code objet :

La génération de code objet peut être considérée comme la phase finale de la compilation. Grâce à
La génération de code, le processus d'optimisation peut être appliqué au code, mais cela peut
être vu comme faisant partie de la génération de code propre à cette phase. Le code généré par le compilateur est
un code objet de certains langages de programmation de niveau inférieur.
Dans la phase finale, le compilateur génère du code objet spécifique pour la machine de destination.

Le code objet est du code machine ou du code assembleur qui peut être exécuté
directement par le CPU de l'ordinateur de destination.

Vous aimerez peut-être aussi