Jul 03, 2024

Wiki

Python

Aide

edit SideBar

Search

Introduction


Le problème posé est...

Donner à un ordinateur un fichier contenant du texte, le lui faire lire et comprendre de manière à lui faire exécuter un certain nombre de tâches associées à ce fichier

$\Rightarrow$ On fait une compilation.

Les diverses phases d'une compilation

Les différentes phases d'une compilation sont :

  1. l'analyse lexicale,
  2. l'analyse syntaxique,
  3. l'analyse sémantique.

On présente succinctement dans ce qui suit chacune de ces trois étapes, avant de les étudier plus en détail dans les prochains TPs.

L'analyse lexicale

On analyse le flux d'entrée de manière à le découper en unités lexicales, ou lexèmes.


Exemple : Dans

  if (temps == beau ) {
       etc.,

les unités lexicales sont « if », « ( », « temps », « == », « beau », « ) », et « { ».


L'entrée est donc une chaîne de caractères, et la sortie est un flux de mots-clefs.

L'analyse syntaxique

L'analyse syntaxique revient à se demander : « les contraintes à respecter pour que le texte soit compréhensible sont-elles respectées ? »

En d'autres termes, le flux de lexèmes est-il conforme à la syntaxe du langage utilisé ? C'est-à-dire, respecte-t-il la grammaire du langage, telle qu'on la définira plus loin ?

L'analyse sémantique

Vient enfin le moment de reconnaître la signification réelle d'un texte syntaxiquement correct : essayer de faire comprendre à la machine ce que cela signifie (le sens).

Cela implique notamment la transformation de la source en une forme utilisable par cette dernière, qui lui permettra de saisir le sens du texte. Cette forme peut être une arborescence, par exemple.


Exemple : L'instruction

toto = titi + tutu;

est une instruction d'affectation à la variable « toto » d'une valeur exprimée par une expression algébrique, constituée de la somme des variables « titi » et « tutu ».

La représentation machine est ici l'arborescence :


Compilation proprement dite

Enfin, la machine est en mesure d'utiliser effectivement le résultat de l'analyse sémantique (l'arborescence, dans le cas de certains compilateurs) pour obtenir le résultat escompté, réaliser ce qui est demandé, sous la forme d'un code machine.

Au final, la compilation n'est que la traduction d'un texte (flux de caractères) dans une autre langue (celle de la machine).

Notons pour clore cette introduction qu'en général, ces différentes phases d'analyse sont menées en parallèle.

Page Actions

Recent Changes

Group & Page

Back Links