DIMPLE
DIMPLE is a logic programming framework for rapid development of static analyses and other programs that operate on programs (including preprocessors and interpreters). DIMPLE is so named as an homage to the Jimple IR (upon which the DIMPLE IR is substantially based) and to reflect its declarative character.
The DIMPLE project was joint work with my graduate advisor, Prof. Charles Fischer.
The best source of information on DIMPLE is the third chapter of my dissertation, or our PPDP paper, which is available here:
William C. Benton and Charles N. Fischer. Interactive, Scalable, Declarative Program Analysis: From Prototype to Implementation. In Proceedings of the 9th International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming. (Wrocław, Poland, 14-16 July 2007.) PDF (696kb). © ACM
Slides from my PPDP talk are available as Flash (1.7 MB) or PDF (2.6 MB)
DIMPLE development proceeds as I add features that I need in my own work; the version used in my dissertation has diverged substantially from the one described in the PPDP paper. While I am not currently distributing DIMPLE (it is a research tool and has a lot of dependences on my personal environment), I am happy to discuss lessons learned or share code with people who are interested in using tabled Prolog for large-scale program analysis tasks.