TACLE Project

TACLE stands for Type Analysis and Call Graph Construction for Eclipse. We plan to develop an Eclipse plug-in for performing type analysis and for constructing the call graph for a Java project inside the JDT environment. Information about types of expressions and about calling relationships plays a fundamental role in many static analyses used in tools for program understanding, transformation, verification, and testing. First, we will build a plug-in that provides this information to other researchers that use Eclipse as infrastructure for their own tools. Second, we will use the analysis to add new JDT functionality that is useful for non-research Eclipse users.

Despite the large number of research papers and projects dedicated to type analysis (including our extensive work on this topic in the last 5 years), the use of such analyses remains largely confined to a community of experts. To address this problem, we will build a type analysis for Java that is seamlessly integrated with Eclipse and is carefully engineered for real-world use by non-experts. The impact of this work will be twofold. First, it will provide other researchers (that are not experts in type analysis) with an off-the-shelf implementation of a practical and easy-to-use algorithm for type analysis and call graph construction. This will increase the usefulness of Eclipse as a research platform for static analysis for Java, and will enable a variety of other analyses to be implemented and ultimately made available to the Eclipse community. Second, we will use the analysis results to extends the functionality of the JDT IDE in Eclipse. This will provide IDE users with information that can help them to understand better their Java projects and to increase their productivity.

A key objective of this work is practicality: taking ideas from existing research on type analysis and extending them for real-world use in Eclipse. We envision a static analysis that is incremental, scalable, capable of analyzing partial programs, and based on source code rather than on bytecode. Our goal is to transfer existing type analysis technology from research to practice, and to make it usable and useful both for regular Eclipse users and for tool builders that create their tools using the Eclipse infrastructure.

The work on TACLE is funded by an IBM Eclipse Innovation Grant.

Additional details about the design of TACLE are available in the paper Building a Whole-Program Type Analysis in Eclipse, Mariana Sharp, Jason Sawin, and Atanas Rountev, Eclipse Technology Exchange Workshop (eTX'05), pages 10-14, October 2005. [ PDF ] [ BibTeX ] [ Talk ]. If you are using TACLE in your own project, reference this paper.

Some approaches for reporting the progress of the analysis are described in Estimating the Run-Time Progress of a Call Graph Construction Algorithm, Jason Sawin and Atanas Rountev, IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'06), pages 53-62, September 2006. [ PDF ] [ BibTeX ] [ Talk ].

Public Distribution

The latest version of TACLE is 1.2.1, released on 2/7/2006.