Top Qs
Timeline
Chat
Perspective

Soufflé (programming language)

Parallel logic programming language From Wikipedia, the free encyclopedia

Remove ads

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]

Remove ads

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:

Remove ads

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.

Remove ads