HerbertJordan / souffle

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.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

License: UPL Build Status codecov

Soufflé is a translator of Horn clauses into parallel C++. Soufflé language has similarities to Datalog, and is used as a domain-specific language for analysis problems.

Features of Soufflé

  • Efficient translation to parallel C++ of Datalog programs
  • Extended semantics of Pure Datalog, e.g., permitting unbounded recursions with numbers
  • Simple component model for Datalog specifications
  • Recursively defined record types (aka. constructors) for tuples

How to get Soufflé

Use git to obtain the source code of Soufflé.

$ git clone git://github.com/souffle-lang/souffle.git

Build instructions can be found here.

About

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.

License:Universal Permissive License v1.0


Languages

Language:C++ 92.8%Language:M4 2.4%Language:Yacc 1.7%Language:Makefile 0.9%Language:Shell 0.9%Language:LLVM 0.5%Language:Dockerfile 0.2%Language:CMake 0.2%Language:Java 0.2%Language:Python 0.1%Language:C 0.1%Language:SWIG 0.0%