Soufflé is a translator of declarative Datalog programs into the C++ language. Soufflé is used as a domain-specific language for static program analysis, over large code bases with millions of lines of code. Soufflé aims at producing high-performance C++ code that can be compiled with the native compiler on the target machine.
- Efficient translation to parallel C++ of Datalog programs
- Extended semantics of Safe Datalog, e.g., permitting unbounded recursions with numbers
- Simple component model for Datalog specifications
- Recursively defined record types for tuples
- Static type system for attributes
https://github.com/oracle/souffle/wiki
https://github.com/oracle/souffle/wiki/Contributors
Use git to obtain the source code of Soufflé.
$ git clone git://github.com/oracle/souffle.git
There is no mailing list to talk about Soufflé at the moment. It will be established soon.
Follow the steps below to compile and install Soufflé on a UNIX system:
-
G++ 4.8 or newer is recommended to compile Soufflé.
-
Run
sh ./bootstrap
to generate configure files -
For Linux users, skip this step. MAC OS X does not have C++/OpenMP nor a bison version 3.0.2 installed. We recommend brew to install the required tools to build Soufflé. Run the following commands prior to executing
./configure
:
brew update
brew reinstall gcc --without-multilib
brew install bison
export CXX=/usr/local/bin/g++-5
export CXXFLAGS=-fopenmp
export SOUFFLECPP=/usr/local/bin/cpp-5
export BISON=/usr/local/opt/bison/bin/bison
-
Run
./configure
-
Run
make
to build the executable of Soufflé -
Test the executable with
make check
to check whether the compilation of Soufflé succeeded. -
Run
make install
This command will create the directories and install files in
${DESTDIR}${prefix}
for system-wide use in your system.
See LICENSE.