Re: [bddbddb-devel] Using bddbddb
Status: Beta
Brought to you by:
joewhaley
|
From: John W. <joe...@gm...> - 2007-09-27 20:24:03
|
Hi Ciera, On 9/26/07, Ciera Christopher <cch...@cs...> wrote: > John, > > I'm interested in using bddbddb for a static analysis that I'm working > on. I've been prototyping using the interactive interpreter, and > everything is working properly. I'd like to try implementing my > analysis, but I have a few questions first: > > 1) I need to plug into the API directly rather than using the > Interactive and DatalogParser classes. The analysis itself will be > auto-generated depending upon some developer specifications, so I'd > like to skip the step of writing this out to file just to have bddbddb > read it back in again. Is there any documentation for how to do this? > I saw two people ask about this on the developers list, but there were > no responses. The easiest thing to do would be to generate Datalog and send it to the parser directly. This will make it really easy to debug what is going on. Once you have solved the relations, you can query the Relation objects directly from your application to get the results. You can generate the rules programmatically if you want, but it may be tedious and harder to debug. > 2) The analysis depends on having an alias analysis and a constant > analysis. Is there a constant analysis implemented? I presume I use > these by calling a particular predicate specific to these analyses. Is > there documentation on which analyses are available and how to access > their results? Some analyses are in bddbddb_examples in the Subversion repository. By constant analysis, do you mean constant propagation and/or constant folding? I'm not sure if there is an analysis. > 3) If I'm understanding correctly, bddbddb depends on joeq to convert > Java bytecode to bdd files. The bytecode is represented as Datalog > predicates. Is there any documentation on predicates used here so I > can call to them? Also, is there any tool that will produce predicates > on the Java source rather than Java bytecode? I find source easier to > reason about for my analysis. > > 4) For my thesis work, I'm going to need a stable and user-friendly > Eclipse plug-in. I noticed that there's a plug-in project in the > repository. What is the status of the project? (I could provide some > assistance there if it needs help, but I'd have to plan it into my > timeline.) > The Eclipse plug-in project was a summer project by an undergrad at Stanford. He got it to a certain point but it is not complete yet. Also, the Eclipse API may have changed since then. It may be a good starting point, however. Using Eclipse is the most natural way of dealing with source code rather than bytecode. > Sorry for asking so many questions. I've hit the point where I need to > start implementing, and I want to make sure I choose the right > analysis framework for the task before investing many months into > this. I really appreciate any guidance that you have on this. Sure, let me know if you have more questions or get stuck somewhere. -John |