Auteur : Benoit Vaugon (ENSTA) Titre : OCamlCC -- Traduire OCaml en C en passant par le bytecode. Abstract: Le système OCaml est doté d'un générateur de bytecode (ocamlc) et d'un générateur de code natif (ocamlopt). Ce dernier cible uniquement les architectures les plus communes tandis que le bytecode OCaml peut être interprété par une machine virtuelle (ocamlrun), écrite en C, et portable sur une grande variété d'architectures. Il peut être frustrant de ne pas pouvoir produire du code natif pour des architectures peu communes, qu'elles soient trop anciennes, trop récentes ou trop rares. Nous avons donc réalisé un traducteur (nommé ocamlcc) prenant en entrée un exécutable bytecode OCaml et produisant du code C. Cependant, la génération de code C à partir d'un langage fonctionnel pose certaines difficultés standards, notamment pour la gestion des exceptions, des signaux et des appels terminaux. De plus, pour obtenir du code C "performant" (ou, plus précisément, "optimisable par le compilateur C"), il est nécessaire d'effectuer un ensemble d'analyses statiques et de transformations de code. Ce sont ces différents aspects de la traduction que nous présenterons dans cet exposé.