To jest stara wersja strony!
Wstęp
Prolog można łatwo zintegrować z językiem ANSI C.
W SWI służy do tego podstawowy interfejs do C
Preliminaria:
znajomość Prologu
znajomość ANSI C
Cel Lab
Ćwiczenia
Etap 1: Podstawy
Interpreter Prologu uruchamia funkcja int PL_initialise(int argc, char *argv[])
, a zatrzymuje void PL_cleanup(int status)
. Wszystkie wywołania Prologu (poza jednym wyjątkiem opisanym w dalszej części ćwiczenia) muszą zawierać się pomiędzy tymi funkcjami.
SWI-Prolog udostępnia funcję int PL_toplevel()
umożliwającą uruchomienie standardowej konsoli kompilatora z poziomu programu w C.
#include <SWI-Prolog>
int main(int argc, char *argv) {
int retval;
retval = PL_initialise(argc, argv);
if (retval == FALSE)
return(1);
retval = PL_toplevel();
PL_cleanup(retval);
return(retval);
}
Etap 2: Ładowanie kodu Prologu i uruchamianie predykatów z poziomu C
#include <SWI-Prolog>
int main(int argc, char *argv) {
int retval;
retval = PL_initialise(argc, argv);
if (retval == FALSE)
return(1);
retval = PL_toplevel();
PL_cleanup(retval);
return(retval);
}
Etap 3: Predykaty w C
Prolog z C
Unix: polecenia systemowe
Unix: sockety
Źródła