This analysis toolkit is part of a larger research project at the Imdea Software Institute into techniques for modeling and reasoning about the program in heap in order to support program development and optimization. This goal of the larger project is to create a first class set of tools for working with data structures through the entire development lifecycle, from design to deployment, of a program. As such we are attempting to make the tool robust and easily usable by other researchers (although it is not there yet) and are happy to provide assistance as needed.

The jackalope analysis toolkit is a central support component for several other tools. The analysis is a hybrid static heap analysis that is a combination of shape analysis style abstract domains with points-to analysis style transfer functions. The result is an analysis with the following properties: (1) it can express a rich set of structural, allocation site, use/mod, and sharing properties which are not provided by a classic points-to analysis and that are useful for optimization and error detection applications (2) it uses efficient, weakly-updating, set-based transfer functions which enable the analysis to be more robust and scalable than a shape analysis and (3) it can be used as the basis for a scalable interprocedural analysis that produces precise results in practice.

This toolkit is currently under active development as part of the ongoing research project -- so although the code analysis code is relatively stable we expect to be making non-trivial changes to various things. We provide a basic release of the code, benchmarks, and some sample information extraction for people to experiment with.

Last edited Mar 29, 2012 at 8:06 PM by DefaultSteve, version 5