SWI-Prolog Foreign Language Interface

YAP reimplementation of the SWI C API.

a reimplementation of the SWI-Prolog interface.

A reimplementation of Jan Wielemaker's SWI-Prolog C-language interface, it supports most of the functionality in the original implementation. It allows for:

  • Term Construction, Access, and Unification

  • Manipulation of Atoms, Strings, Lists of Codes and Lists of Atoms

  • Query evaluation

  • Thread and Prolog engine management

  • Data-Base Access

In this interface, all Prolog data known by C is referenced through term references (term_t), hence Prolog has all the information necessary to perform its memory management without special precautions from the C programmer.

Define:

1. PL_KERNEL:

1. PL_KERNEL:

1. _EXPORT_KERNEL:

1. snprintf:

1. isDefinedProcedure:

Functions:

1. X_API Atom YAP_AtomFromSWIAtom(atom_t at):

1. X_API atom_t YAP_SWIAtomFromAtom(Atom at):

1. static int do_gc(UInt sz):

1. X_API arity_t YAP_PLArityOfSWIFunctor(functor_t at):

1. static void UserCPredicate(char *a, CPredicate def, arity_t arity, Term mod, int flags):

1. void Yap_swi_install(void):

1. void Yap_install_blobs(void):

1. static Term SWIModuleToModule(module_t m):

1. static Atom SWIAtomToAtom(atom_t at):

1. static functor_t FunctorToSWIFunctor(Functor f):

1. static Functor SWIFunctorToFunctor(functor_t f):

1. int Yap_write_blob(AtomEntry ref, FILE stream):

Var:

1. atom_t ATOM_nil: