DatalogAnalysis in ROSE

------------
Description:

This translator creates a relational representation of programs suitable
for use in relational querying tools like bddbddb.  bddbddb is a Datalog
interpreter that uses Binary Decision Diagrams (bdd) to efficiently support relational algebra
operations.  We currently make use of bddbddb to answer Datalog queries
that check for coding standard violations and AST inconsistencies.
Several examples are available in the tests/datalogExamples directory.


-------------------------
Building DatalogAnalysis:

ROSE does not build the DatalogAnalysis project by default.  Users must
supply the option --with-bddbddb to the configure commandline.  Additionally, Python version 2.4 or
later must be installed on the system to build the DatalogAnalysis
project. The configure script will attempt to find the necessary version
of python automatically, though it may require that the user provide the
path to the python interpreter (binary) if it is not already in the
user's PATH environment.  If configure complains about not finding
the correct Python interpreter, the user may specify the location to the
interpreter by using the option:
--with-python=/path/to/python2.4/bin/python
If the correct version of python is not found bddbddb will be disabled.


-------------------
Creating relations:

To perform a Datalog analysis of a program, one must first create the
relational representation of the program in question.  One creates
relations by running relationTranslator on a C or C++ source file. The
program will attempt to find the "./dump" directory to store relations
in.  At a later time, we may provide an option to specify a different
directory to place relations in.  Note that, to analyze multiple source
files, all must be provided to relationTranslator on the same
invocation, since any previous relation data is overwritten.


--------------------------------
Running the Datalog Interpreter:

The bddbddb script provided simplifies setting the CLASSPATH and
invoking the correct bddbddb classes.  To use this script on a specific
Datalog program, run the following command:
$ bddbddb datalog_program

For help with running the bddbddb command, run:
$ bddbddb -h


------------------------------------
Creating a DatalogAnalaysis program:

To use the relations created by the relationTranslator, insert the
following line at the top of the source file:
.include everything

Again, please see the test/datalogExamples directory for several datalog coding
standard checkers!

The latest version of bddbddb is distributed with this project.
bddbddb is available under the LGPL license.  The sources, papers, and
tutorial presentations for bddbddb are available at:
http://bddbddb.sourceforge.net/

To download the latest version of bddbddb:
svn co https://svn.sourceforge.net/svnroot/bddbddb bddbddb

At some point in the future, we may provide back-ends for other relational
analysis tools such as CroCopat (http://mtc.epfl.ch/~beyer/CrocoPat/)
and CodeQuest (http://progtools.comlab.ox.ac.uk/projects/codequest/).
