Soufflé

OVERVIEW

  • Soufflé is a Datalog compiler that is optimised for static program analysis, such as points-to, taint, and constant-propagation.

    It exploits the monotonic nature of Datalog computations and implements novel compilation techniques to translate Datalog programs to efficient and parallel C++ programs.

    Soufflé aims to support designers of program analyses and to increase their productivity, i.e., enabling rapid prototyping for static program analysis, and making deep design-space explorations possible. This feature would be useful for tool designers writing static program analyses.

    How it works

    The core of the compiler is a Futamura projection that translates a declarative Datalog program to an executable imperative C++ program via partial evaluation.

    Soufflé aims to support designers of program analyses and to increase their productivity, i.e., enabling rapid prototyping for static program analysis, and making deep design-space explorations possible. This feature would be useful for tool designers writing static program analyses.

    Main Challenges

    Scalability: The execution of static program analyses written in Datalog is a major challenge for large codebases. For this reason, new high-performance execution models are needed that go beyond the state-of-the-art techniques.

    Soufflé meets that challenge by aiming to be just a computational machinery for static program analyses. It foregoes the needs for standard Datalog uses in relational databases, i.e., it does not provide persistency, and other relational database properties.

    Soufflé is open source.

    The latest download is available from the Oracle Technology Network: http://www.oracle.com/technetwork/oracle-labs/souffle/overview/index.html

    To find out more, contact Cristina Cifuentes.

VISITING PROFESSORS

  • 2014 - 2015: Associate Professor Bernhard Scholz, The University of Sydney

RESEARCH ASSISTANTS

  • Jan 2015 - Jul 2015: Herbert Jordan, University of Innsbruck
  • Sep 2014 - Feb 2015: Paul Subotic, University of Sydney
  • Nov 2013 – Apr 2014: Kostyantyn Vorobyov, Bond University

VISITING STUDENTS

  • Nov 2014 - Jun 2015: Raihaan Amod, The University of Queensland

TEAM MEMBERS