Elf is a static reflection analysis tool for Java introduced in our paper titled "Self-Inferencing Reflection Resolution for Java", ECOOP'14. Elf resolves reflection with good soundness, precision and efficiency by exploiting the self-inferencing property inherent in the program. Elf was developed by Yue Li and Tian Tan.
A more sound and controllable reflection analysis can be found here: Solar.
News: From version 0.3, Elf can output its reflection analysis results with the format that is supported by Soot. You can let Soot receive the results of Elf easily by following the instructions in the tutorial.The tar.gz file includes three files:
tutorial: a step-by-step guide for installing Elf on top of Doop (version r160113) by using the two patch files (available below). The main differences between Elf and Doop are also summarised.
elf.patch: a patch file for updating the Datalog rules and some auxiliary scripts used in Doop.
gen.patch: a patch file for updating the fact generator (version r958) provided by Doop.
The authors wish to thank the Doop team for making Doop available, and LogicBlox Inc. for providing us its Datalog engine.