Defining Datalog in Rewriting Logic

In recent work, the effectiveness of using declarative languages has been demonstrated for many problems in program analysis. Using a simple relational query language, like Datalog, complex interprocedural analyses involving dynamically created objects can be expressed in just a few lines. By exploiting the power of the Rewriting Logic language Maude, we aim at transforming Datalog programs into efficient rewrite systems that compute the same answers. A prototype has been implemented and applied to some real-world Datalog-based analyses. Experimental results show that the performance of solving Datalog queries in rewriting logic is comparable to state-of-the-art Datalog solvers.

[1]  Pierre Lescanne,et al.  Algebraic and Logic Programming , 1988, Lecture Notes in Computer Science.

[2]  Benjamin Livshits,et al.  Reflection Analysis for Java , 2005, APLAS.

[3]  Letizia Tanca,et al.  Logic Programming and Databases , 1990, Surveys in Computer Science.

[4]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[5]  José Meseguer,et al.  Conditioned Rewriting Logic as a United Model of Concurrency , 1992, Theor. Comput. Sci..

[6]  John W. Lloyd,et al.  Analysis of Meta-Programs , 1989, META.

[7]  Monica S. Lam,et al.  Using Datalog with Binary Decision Diagrams for Program Analysis , 2005, APLAS.

[8]  Laurent Vieille,et al.  Recursive Axioms in Deductive Databases: The Query/Subquery Approach , 1986, Expert Database Conf..

[9]  Jan van Leeuwen,et al.  Formal models and semantics , 1990 .

[10]  Serge Abiteboul,et al.  Foundations of Databases , 1994 .

[11]  Jeffrey D. Ullman,et al.  Principles of Database and Knowledge-Base Systems, Volume II , 1988, Principles of computer science series.

[12]  Narciso Martí-Oliet,et al.  All About Maude - A High-Performance Logical Framework, How to Specify, Program and Verify Systems in Rewriting Logic , 2007, All About Maude.

[13]  Konstantinos Sagonas,et al.  XSB as an efficient deductive database engine , 1994, SIGMOD '94.

[14]  Henrik Reif Andersen Model Checking and Boolean Graphs , 1992, ESOP.

[15]  María Alpuente,et al.  Using Datalog and Boolean Equation Systems for Program Analysis , 2009, FMICS.

[16]  Yanhong A. Liu,et al.  From datalog rules to efficient programs with time and space guarantees , 2003, PPDP '03.

[17]  Hans Zantema,et al.  A rewriting approach to binary decision diagrams , 2001, J. Log. Algebraic Methods Program..

[18]  Jürgen Giesl,et al.  Automated Termination Analysis for Logic Programs by Term Rewriting , 2006, LOPSTR.

[19]  Massimo Marchiori Logic Programs as term Rewriting Systems , 1994, ALP.

[20]  Christophe Joubert,et al.  Implementing Datalog in Maude , 2009 .

[21]  Uday S. Reddy,et al.  Transformation of Logic Programs into Functional Programs , 1984, SLP.

[22]  Jeffrey D. Ullman,et al.  Principles Of Database And Knowledge-Base Systems , 1979 .

[23]  Massimo Marchiori,et al.  Unravelings and Ultra-properties , 1996, ALP.

[24]  David Maier,et al.  Magic sets and other strange ways to implement logic programs (extended abstract) , 1985, PODS '86.

[25]  John W. Lloyd,et al.  A Logical Reconstruction of Prolog II , 1984, J. Log. Program..