Soufflé is an
open sourceparallellogic 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 edgerelation.
^Jordan, Herbert; Subotić, Pavle; Zhao, David; Scholz, Bernhard (2019-02-17).
"Brie". Proceedings of the 10th International Workshop on Programming Models and Applications for Multicores and Manycores. PMAM'19. New York, NY, USA: Association for Computing Machinery. pp. 31–40.
doi:
10.1145/3303084.3309490.
ISBN978-1-4503-6290-0.
S2CID239258588.
^Silverman, Davis Ross; Sun, Yihao; Micinski, Kristopher; Gilray, Thomas (2021-07-27). "So You Want to Analyze Scheme Programs With Datalog?".
arXiv:2107.12909 [
cs.PL].
^Tsankov, Petar; Dan, Andrei; Drachsler-Cohen, Dana; Gervais, Arthur; Bünzli, Florian; Vechev, Martin (2018-10-15).
"Securify". Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security. CCS '18. New York, NY, USA: Association for Computing Machinery. pp. 67–82.
doi:
10.1145/3243734.3243780.
hdl:
10044/1/87935.
ISBN978-1-4503-5693-0.
S2CID46936025.
Brent, Lexi; Jurisevic, Anton; Kong, Michael; Liu, Eric; Gauthier, Francois; Gramoli, Vincent; Holz, Ralph; Scholz, Bernhard (2018-09-11). "Vandal: A Scalable Security Analysis Framework for Smart Contracts".
arXiv:1809.03981 [
cs.PL].
Antoniadis, Tony; Triantafyllou, Konstantinos; Smaragdakis, Yannis (2017-06-18).
"Porting doop to Soufflé". Proceedings of the 6th ACM SIGPLAN International Workshop on State of the Art in Program Analysis. SOAP 2017. New York, NY, USA: Association for Computing Machinery. pp. 25–30.
doi:
10.1145/3088515.3088522.
ISBN978-1-4503-5072-3.
S2CID3074689.
Soufflé is an
open sourceparallellogic 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 edgerelation.
^Jordan, Herbert; Subotić, Pavle; Zhao, David; Scholz, Bernhard (2019-02-17).
"Brie". Proceedings of the 10th International Workshop on Programming Models and Applications for Multicores and Manycores. PMAM'19. New York, NY, USA: Association for Computing Machinery. pp. 31–40.
doi:
10.1145/3303084.3309490.
ISBN978-1-4503-6290-0.
S2CID239258588.
^Silverman, Davis Ross; Sun, Yihao; Micinski, Kristopher; Gilray, Thomas (2021-07-27). "So You Want to Analyze Scheme Programs With Datalog?".
arXiv:2107.12909 [
cs.PL].
^Tsankov, Petar; Dan, Andrei; Drachsler-Cohen, Dana; Gervais, Arthur; Bünzli, Florian; Vechev, Martin (2018-10-15).
"Securify". Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security. CCS '18. New York, NY, USA: Association for Computing Machinery. pp. 67–82.
doi:
10.1145/3243734.3243780.
hdl:
10044/1/87935.
ISBN978-1-4503-5693-0.
S2CID46936025.
Brent, Lexi; Jurisevic, Anton; Kong, Michael; Liu, Eric; Gauthier, Francois; Gramoli, Vincent; Holz, Ralph; Scholz, Bernhard (2018-09-11). "Vandal: A Scalable Security Analysis Framework for Smart Contracts".
arXiv:1809.03981 [
cs.PL].
Antoniadis, Tony; Triantafyllou, Konstantinos; Smaragdakis, Yannis (2017-06-18).
"Porting doop to Soufflé". Proceedings of the 6th ACM SIGPLAN International Workshop on State of the Art in Program Analysis. SOAP 2017. New York, NY, USA: Association for Computing Machinery. pp. 25–30.
doi:
10.1145/3088515.3088522.
ISBN978-1-4503-5072-3.
S2CID3074689.