FormuLog: Datalog for static analysis involving logical formulae

09/17/2018
by   Aaron Bembenek, et al.
0

Datalog has become a popular language for writing static analyses. Because Datalog is very limited, some implementations of Datalog for static analysis have extended it with new language features. However, even with these features it is hard or impossible to express a large class of analyses because they use logical formulae to represent program state. FormuLog fills this gap by extending Datalog to represent, manipulate, and reason about logical formulae. We have used FormuLog to implement declarative versions of symbolic execution and abstract model checking, analyses previously out of the scope of Datalog-based languages. While this paper focuses on the design of FormuLog and one of the analyses we have implemented in it, it also touches on a prototype implementation of the language and identifies performance optimizations that we believe will be necessary to scale FormuLog to real-world static analysis problems.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/17/2020

Formulog: Datalog for SMT-Based Static Analysis (Extended Version)

Satisfiability modulo theories (SMT) solving has become a critical part ...
research
11/23/2016

Static Analysis of Communicating Processes using Symbolic Transducers

We present a general model allowing static analysis based on abstract in...
research
10/09/2020

Modular Collaborative Program Analysis in OPAL

Current approaches combining multiple static analyses deriving different...
research
08/28/2020

On the Performance of Bytecode Interpreters in Prolog

The semantics and the recursive execution model of Prolog make it very n...
research
08/18/2023

Incrementalizing Production CodeQL Analyses

Instead of repeatedly re-analyzing from scratch, an incremental static a...
research
10/20/2017

Self-adaptive static analysis

Static code analysis is a powerful approach to detect quality deficienci...
research
05/14/2013

Abstracting Abstract Control (Extended)

The strength of a dynamic language is also its weakness: run-time flexib...

Please sign up or login with your details

Forgot password? Click here to reset