12 Foreign Language Interface
AllApplicationManualNameSummaryHelp

  • Documentation
    • Reference manual
      • Foreign Language Interface
        • Overview of the Interface
        • Linking Foreign Modules
        • Interface Data Types
        • The Foreign Include File
        • Linking embedded applications using swipl-ld
        • The Prologā€˜home' directory
        • Example of Using the Foreign Interface
        • Notes on Using Foreign Code
        • Foreign access to Prolog IO streams
    • Packages

12.1 Overview of the Interface

A special include file called SWI-Prolog.h should be included with each C source file that is to be loaded via the foreign interface. The installation process installs this file in the directory include in the SWI-Prolog home directory (?- current_prolog_flag(home, Home).). This C header file defines various data types, macros and functions that can be used to communicate with SWI-Prolog. Functions and macros can be divided into the following categories:

  • Analysing Prolog terms
  • Constructing new terms
  • Unifying terms
  • Returning control information to Prolog
  • Registering foreign predicates with Prolog
  • Calling Prolog from C
  • Recorded database interactions
  • Global actions on Prolog (halt, break, abort, etc.)