Author: Christian.Queinnec@lip6.fr

## Plan du chapitre

Ce chapitre présente les outils de la distribution d'Objective CAML qui permettent l'interaction entre Objective CAML et C en créant des exécutables contenant des parties développées dans les deux langages. Ces outils contiennent les fonctions de conversion des valeurs des deux langages, permettent une allocation en C sûre qui utilise le tas Objective CAML et son GC, et autorisent le déclenchement d'exceptions Objective CAML en C.
La première section montre comment utiliser une fonction C en Objective CAML et comment construire des exécutables et des toplevels incluant un programme C contenant cette fonction. La deuxième section explore la représentation des valeurs Objective CAML en C. La troisième section explique comment créer et modifier des valeurs Objective CAML en C. Elle détaille d'autre part les problèmes soulevés par l'allocation mémoire de C en présence du GC d'Objective CAML et comment profiter de ce mécanisme pour avoir une allocation sûre en C. La quatrième section décrit la gestion des exceptions, leur déclenchement et leur récupération selon le lieu de la rupture de calcul. La cinquième section inverse les rôles en incluant du code Objective CAML dans un programme principal C.

### Remarque

La lecture de ce chapitre nécessite de connaître un tant soit peu le langage C. De même la lecture du chapitre 9 est utile pour la compréhension des difficultés liées à la récupération automatique de mémoire.