December 3, 2021
Datalog is a Declarative Logic Programming Language. Its language mechanics lie in relational, rule-based logical inference. The Trail of Bits (ToB) R&D staff has been developing a new Datalog Compiler and Execution Engine, Dr. Lojekyll. Dr. Lojekyll, pronounced Dr. Logical, is designed around a publish/subscribe model. The Datalog engine was designed with both industry specific and research goals in mind, as Dr. Lojekyll is a component to ToB’s ongoing work for DARPA AMP. Some of its intended use cases are incremental static analysis, interactive disassembly, and mixed static/dynamic analysis. In this presentation, ToB’s Datalog Research Team will discuss what Datalog is, why it is useful, and why they created another Datalog engine. Dr. Lojekyll’s implementation details to be discussed include its syntax elements, how data flows through its compiler, and an overview of the compiler’s IR. They will conclude this discussion with a demo of a Mini Disassembler example using Dr. Lojekyll.