Un autre point important de notre implémentation de Prolog est que nous avons voulu en faire un système ouvert vers son environnement de programmation et ouvert vers d'autres langages de programmation. La réponse commune à ces deux objectifs a été d'utiliser le langage C comme machine cible. On hérite ainsi de l'intégration et de l'ouverture de C au prix d'un effort raisonnable. Le compilateur de produit donc des fichiers exécutables qui obéissent aux conventions d'appel et de retour du système hôte. Ils n'ont pas besoin d'un environnement spécifique pour être exécutés. Ils acceptent les paramètres que peuvent accepter les programmes C, sont connectés aux mêmes ports d'entrée-sortie standard (Unix) et produisent le même type de comptes rendus d'exécution.
Le schéma d'exécution est fondé sur le modèle des continuations* d'échec (c'est-à-dire la pile de retour-arrière*) et de succès (la résolvante*) [Nicholson et Foo 89] qu'il a fallu adapter à la gestion dynamique du programme et de la signature [Brisset 92, Ridoux 92]. Un des intérêts de ce modèle est de permettre l'implémentation de primitives de contrôle de la recherche et de gestion d'exceptions par capture de continuation [Brisset et Ridoux 93].
Le système est disponible sous le nom de [Brisset et al. ] et il est distribué par (File Transfert Protocol) sous licence (Free Software Foundation). Il comporte un compilateur, un environnement de trace, et des outils de profilage des exécutions. Le système permet la compilation séparée, l'appel de procédure C depuis un programme Prolog et l'appel de prédicats Prolog depuis un programme C. Il présente quelques dispositifs communément offerts dans les systèmes Prolog (par exemple, freeze) et d'autres moins communs (par exemple, la capture des continuations*). Nous verrons dans la section «Applications»* -- que ces capacités sont vraiment utilisées. Dans ce système, nous nous sommes particulièrement intéressés aux traits spécifiques de Prolog et avons adopté des techniques simples et éprouvées pour la partie Prolog. En particulier, l'indexation des clauses y est traitée de manière assez rudimentaire, de sorte qu'un programme bien choisi permettrait de montrer des écarts de temps de calcul arbitraires par rapport à un système Prolog moderne qui implémente une indexation des clauses plus performante. Cependant, la comparaison de programmes «naturels» montre un rapport de temps de calcul de 5 à 10 avec ces mêmes systèmes. Cela fait de le plus rapide des systèmes Prolog et même un système Prolog (typé) raisonnable.