
Envoyé par
gangsoleil
Bonjour,
A priori, ce n'est pas possible.
En effet, la compilation se passe ainsi (en très très gros et s'il y a des erreurs, hésitez pas à corriger) :
Lecture du code mot à mot par un lexeur, qui reconnait des mots-clefs, et passe cela au parseur (on est au niveau de l'orthographe des mots si tu préfères).
Le parseur est un vérificateur grammatical : il prend ce que lui donne le lexeur, et vérifie que ca forme bien une séquence d'instructions. Par exemple, si le premier lexème ets "INT", alors le suivant ne doit pas être un mot-clef (puisque c'est le nom d'une fonction ou d'une variable). S'il y a un ";" après, alros c'est une variable ; mais s'il y a une "(", alors c'est une fonction, qui attends de zero à plusieurs arguments.
Le Parseur en profite également pour construire un arbre, qui va permettre de faire (ou non) des optimisations de compilation.
Ensuite, tu peux générer de l'assembleur, un binaire ou n'importe quoi d'autre, selon le compilo et les options.
Le compilateur GCC est prévu pour générer un code dépend&ant d'une architecture et d'un système d'exploitation. Ce que tu veux faire revient à développer une partie d'un compilateur, qui permet de choisir le langage de destination. C'est certainement possible, c'est probablement faisable avec la communauté de gcc, mais ca n'existe probalement pas encore.
Partager