Overview
International Workshop on the State Of the Art in Java Program Analysis
Co-located with PLDI, June 2012 in Beijing, China.
Submissions by March 28th, 2012. More information
TAOSD Special Issue on Runtime Verification and Analysis
Submission deadline: August 15th, 2012 More information here.
What is Clara?
Clara (CompiLe-time Approximation of Runtime Analyses) is a novel research framework for the implementation of hybrid typestate analyses, which use static analyses to partially evaluate runtime monitors for typestate properties. The major design goal of Clara is to de-couple the code-generation for efficient runtime monitors from the static analyses that convert these monitors into faster, residual monitors. Clara is compatible to any runtime monitor that is implemented as an AspectJ aspect. Further, researchers can easily implement static analyses that will then automatically optimize any of these monitors.
Clara is built on top of the AspectBench Compiler, which uses technologies from Soot and JastAdd.
For Researchers, Clara offers:
- a convenient specification format for typestate properties, called Dependency State Machines,
- an extensible framework to implement static typestate analyses quickly and with high quality,
- automatic support for generating residual runtime monitors, even for collaborative runtime verification, and
- a platform to share specifications and compare analysis results.
For Developers, Clara offers:
- tool support to precisely define the behavioral interface of an application,
- tool support to check whether client code fulfills these specifications, and if not
- the possibility to have a residual runtime monitor that deals with property violations just-in-time.
Clara originated as Eric Bodden‘s doctoral-thesis project at the Sable Research Group. The design and implementation of Clara was greatly influenced by the work of this group and the Programming Tools Group at the University of Oxford, specifically Laurie Hendren, Patrick Lam, Oege de Moor, Pavel Avgustinov, Julian Tibble and Torbjörn Ekman. Many thanks also to Feng Chen and Grigore Rosu for helping integrate their JavaMOP framework with Clara. Manu Sridharan contributed a very precise points-to analysis to Soot without which Clara could not work. Clara uses technologies from the AspectBench Compiler, Soot, JastAdd, polyglot and other open-source projects.