Jump to content

Soufflé (programming language)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Siddharthist (talk | contribs) at 14:06, 26 February 2023. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.


Soufflé is an open source parallel logic programming language, influenced by Datalog.

Programming examples

Given a set of edges in a graph, the following program computes the set of (directed) edges 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).

Applications

Other tools

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

References

Notes

  1. ^ Zhao, David; Subotić, Pavle; Scholz, Bernhard (2020-04-17). "Debugging Large-scale Datalog: A Scalable Provenance Evaluation Strategy". ACM Transactions on Programming Languages and Systems. 42 (2): 7:1–7:35. doi:10.1145/3379446. ISSN 0164-0925.

Sources