An interpreter for the Datalog language.
Datalog is a declarative logic programming language. While it is syntactically a subset of Prolog, Datalog generally uses a bottom-up rather than top-down evaluation model. This difference yields significantly different behavior and properties from Prolog. It is often used as a query language for deductive databases. Datalog has been applied to problems in data integration, networking, program analysis, and more.
To compile the program you can use g++
like so:
$ g++ -Wall -Werror -std=c++17 -g src/*.cpp -o datalog
Then, simply run the compiled executable with a datalog file passed in as a cli argument:
$ ./datalog hello.d
You can optionally use the scripts as provided:
$ scripts/run.sh hello.d
Hello, world
$ scripts/test.sh
Running unit tests
...