Bug#831628: ITP: souffle -- a translator of declarative Datalog programs into the C++ programming language
Owner: Konstantin Vorobyov <firstname.lastname@example.org>
* Package name : souffle
Version : 1.0.0
Upstream Author : Konstantin Vorobyov <email@example.com>
* URL : http://souffle-lang.github.io/
* License : (UPL)
Programming Lang: (C++)
Description : a translator of declarative Datalog programs into the C++
Souffle is a translator of declarative Datalog programs into the C++ language.
Souffle is used as a domain-specific language for static program analysis, over
large code bases with millions of lines of code. Souffle aims at producing
high-performance C++ code that can be compiled with the native compiler on the
Features of Souffle:
- Efficient translation to parallel C++ of Datalog programs
- Extended semantics of Safe Datalog, e.g., permitting unbounded recursions
- Simple component model for Datalog specifications
- Recursively defined record types for tuples
- Static type system for attributes
Souffle is not a dependency for another package but a standalone tools which
consumes specification written in Datalog, translates it into a C++ program and
generates an executable using a G++ compiler.
More information about Souffle including its relevance, use cases and the
community around Souffle can be found at the https://github.com/souffle-
There exists a several tools capable of executing Datalog programs. Some of the
most significant efforts are muZ, bddbddb and LogicBlox. However muZ and
bddbddb have performance issues when computing large Datalog programs, while
LogicBlox has licensing restrictions and not free software. To the best of our
knowledge no datalog translator is a part of Debian yet.
Souffle is developed and maintained by a group of researchers and developers
who use the software in their research or were a part of the Souffle project at
one point or another. The core of this group is a part of the School of the
Information Technologies at the University of Sydney.