Soufflé (programming language)

Parallel logic programming language From Wikipedia, the free encyclopedia

Soufflé is an open source parallel logic programming language, influenced by Datalog. Soufflé includes both an interpreter and a compiler that targets parallel C++. Soufflé has been used to build static analyzers, disassemblers, and tools for binary reverse engineering. Soufflé is considered by academic researchers to be high-performance and "state of the art," and is often used in benchmarks in academic papers.[2][3][4]

Programming examples

Given a set of edges in a graph, the following program computes the set of (directed) paths between any two nodes. This is also known as the transitive closure of the edge relation.

.decl edge(x:number, y:number)
.input edge

.decl path(x:number, y:number)
.output path

path(x, y) :- edge(x, y).
path(x, y) :- path(x, z), edge(z, y).

Features

In addition to a compiler and an interpreter, the Soufflé project also publishes:

Applications

Soufflé has been used to build static analyzers, including:

It has also been used to build tools for binary analysis, including reverse engineering,[23] and disassemblers.[24]

References

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.