Transformation
of programs among different paradigms has been widely studied in
academic research and education. The interest on Datalog has recently
increased as a specification language for expressing, in just a few
lines, complex interprocedural analyses involving dynamically created
objects. In real-world problems, the Datalog rules encoding a
particular analysis must be solved generally under a huge set of
Datalog facts that are automatically extracted from the analyzed
program (e.g. pointer dependencies). In that context, this work aims at
exploiting Maude’s capabilities for supporting efficient evaluation of
Datalog queries. We demonstrate how, starting from an almost
straightforward transformation of Datalog programs into Maude
specifications, we are able to achieve a highly efficient version.