MinCaml compiler: a multi-targeted native code compiler?
Bonjour à tous,
Dans mon cours de programmation fonctionnelle appuyé sur Ocaml et le compilateur Mincaml, mon enseignant a sous-entendu que Mincaml était conçu (en anglais je suis sûr de pas dire de bêtise: "to generate native code targeted for different CPU architectures"). Cependant, étant donné que Mincaml génère de l'assembleur SPARC (qui si je ne me trompe pas est dans la catégorie d'architecture RISC), je ne vois pas trop comment cela peut être vrai. Et mon enseignant n'étant pas forcément le plus pédagogique, il m'a un peu envoyé paître quand je lui ai demandé plus d'info..
Ainsi, comment Mincaml peut-être un "multi-target compiler" en étant basé sur une architecture spécifique? N'est-ce pas contradictoire en soit?
Même front-end, multiple back-end
Mincaml n'est pas basé sur une architecture spécifique, il peut cibler aussi bien l'architecture SPARC que l'architecture PowerPC.
Les parties (front-end) qui assurent l'analyse syntaxique, le typage et sa synthèse, et la conversion en HLA (High-Level-Assembler, un langage intermédiaire interne au compilateur), sont communes à toutes les architectures.
La partie (back-end) qui assure la génération du code natif à partir du HLA est elle spécifique à chaque architecture.
Citation:
to generate native code targeted for different CPU architectures
Oui mais pour chaque nouvelle architecture il faut écrire un nouveau back-end.