Overview

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:

For Developers, Clara offers:

abc

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.