CCMP2 1

Insérer les slides ici

J’ai un ast, comment je fais pour prodire du code depuis l’AST ?

Il faut passer par une représentation intermédiaire avant l’assembleur.

Pour la suite du cours:

Front end est un nom (le front end)
front-end est un adjectif (front-end interface)

Front end est lié à l’analyse.

Le middle end concerne tout ce qui est des optimisations généric etc.
Le back end concerne le passage à notre assembleur préféré.

Front end:

Back end:

L’interet d’un middle end c’est que si un compilo à un bug, alors il faut changer le code de tous les compilos qui se ressemblent (C, et C++ par exemple). Alors que si on crée un middle end, on a moins de noeuds à vérifier. (cf. slide 9 du pdf du prof).

Middle end

Il est difficile de réaliser le passage d’un angage à un middle end commun à tous les langages.
On va donc réaliser plusieurs couche de middle end qui vont chacune faire converger notre langage vers un middle end commun. Chaque couche retirera une couche d’abstraction. Par exemple une couche va retirer l’objet, une autre va retirer les lambda etc…