Soufflé
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.
Features of Soufflé
- 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
Documentation
https://github.com/oracle/souffle/wiki
Contributors
https://github.com/oracle/souffle/wiki/Contributors
How to get Soufflé
Use git to obtain the source code of Soufflé.
$ git clone git://github.com/oracle/souffle.git
Mailing list
There is no mailing list to talk about Soufflé at the moment. It will be established soon.
How to compile and install
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.
License
See LICENSE.