@proceedings {AFJV09a, title = {Defining Datalog in Rewriting Logic}, journal = {Proceedings of the 19th International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR{\textquoteright}09)}, volume = {6037}, year = {2010}, pages = {188{\textendash}204}, publisher = {Springer-Verlag}, author = {Maria Alpuente and Marco Antonio Feli{\'u} and Joubert, C. and Alicia Villanueva}, editor = {Schreye, D. de} } @article {AFJV09b, title = {DATALOG_SOLVE: A Datalog-Based Demand-Driven Program Analyzer}, journal = {Electronic Notes in Theoretical Computer Science}, volume = {248}, year = {2009}, pages = {57{\textendash}66}, abstract = {This work presents a practical Java program analysis framework that is obtained by combining a Java virtual machine with a general-purpose verification toolbox that we previously extended. In our methodology, Datalog clauses are used to specify complex interprocedural program analyses involving dynamically created objects. After extracting an initial set of Datalog constraints about the Java bytecode program semantics, our framework transforms the Datalog rules of a particular analysis into a Boolean Equation System (Bes), whose local resolution using the aforementioned extended verification toolbox corresponds to the demand- driven computation of the analysis.}, author = {Maria Alpuente and Marco Antonio Feli{\'u} and Joubert, C. and Alicia Villanueva} } @article {AFJV09tr, title = {Defining Datalog in Rewriting Logic}, number = {DSIC-II/07/09}, year = {2009}, publisher = {DSIC, Universidad Polit{\'e}cnica de Valencia}, author = {Maria Alpuente and Marco Antonio Feli{\'u} and Joubert, C. and Alicia Villanueva} } @proceedings {AFJV09, title = {Implementing Datalog in Maude}, journal = {Proceedings of the IX Jornadas sobre Programaci{\'o}n y Lenguajes (PROLE{\textquoteright}09) and I Taller de Programaci{\'o}n Funcional (TPF{\textquoteright}09)}, year = {2009}, month = {September}, pages = {15{\textendash}22}, abstract = {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{\textquoteright}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.}, author = {Maria Alpuente and Marco Antonio Feli{\'u} and Joubert, C. and Alicia Villanueva}, editor = {Pe{\~n}a, R.} } @proceedings {AFJV08, title = {Using Datalog and Boolean Equation Systems for Program Analysis}, journal = {Proceedings of the 13th International Workshop on Formal Methods for Industrial Critical Systems (FMICS{\textquoteright}08)}, volume = {5596}, year = {2009}, pages = {215{\textendash}231}, publisher = {Springer-Verlag}, abstract = {This paper describes a powerful, fully automated method to evaluate Datalog queries by using Boolean Equation Systems (Bess), and its application to object-oriented program analysis. Datalog is used as a specification language for expressing complex interprocedural program analyses involving dynamically created objects. In our methodology, Datalog rules encoding a particular analysis together with a set of constraints (Datalog facts that are automatically extracted from program source code) are dynamically transformed into a Bes, whose local resolution corresponds to the demand-driven evaluation of the program analysis. This approach allows us to reuse existing general purpose verification toolboxes, such as Cadp, providing local Bes resolutions with linear-time complexity. Our evaluation technique has been implemented and successfully tested on several Java programs and Datalog analyses that demonstrate the feasibility of our approach.}, author = {Maria Alpuente and Marco Antonio Feli{\'u} and Joubert, C. and Alicia Villanueva}, editor = {Darren Cofer and Alessandro Fantechi} }