TamiFlex 1.1 released

Eric | August 4, 2010

I am happy to announce that today we released version 1.1 of TamiFlex, our tool suite for dealing with reflection and custom class loaders in static analysis. Version 1.1 not only features several minor bug fixes but a completely new component called the Booster. Previous versions of TamiFlex required static analyses that were “TamiFlex-aware”, and at the current time the only such tool is Soot. The Booster makes TamiFlex compatible with virtually every static-analysis tool for Java bytecode: it transforms the original program into a new program version that is enriched with “materialized” versions of the originally reflective method calls, now in the form of standard Java method calls. Because these calls are now materialized in the code, static-analysis tools will discover them instead of unsoundly ignoring the calls.

Comments
Comments Off on TamiFlex 1.1 released
Categories
Research
Tags
Java, Soot, Static Analysis, TamiFlex

Save the Date: Nov 1st-4th – Clara Tutorial at RV 2010

Eric | May 18, 2010

RV ConferenceToday I am having good news for everybody who is working on runtime monitoring in a Java-based setting and is thinking about using my Clara framework for partially evaluating runtime monitors at compile time. My tutorial proposal for RV 2010 has just been accepted.

For now, I am planning to cover the following topics:

  • Problem Statement: Why partial evaluation?
  • What’s out there? Overview of existing runtime-monitoring tools
  • Architecture of Clara: Important Design Decisions
  • Static analyses in Clara: How do they work? How can we use them?
    • Quick Check: syntactic, flow-insensitive
    • Orphan-Shadows Analysis: pointer-based, flow-insensitive
    • Nop-Shadows Analysis: pointer-based, flow-sensitive
  • Clara as a generic optimizer: How to allow your own runtime-verification tool to use Clara for static optimizations

If time permits also:

  • Clara and testing: Using Clara to tell apart useful from useless test cases

You can read the full tutorial proposal here. Patrick Lam will likely be joining me for the fun. We will likely be allocated a 2.5h slot, which is not a lot of time to cover all these topics. Therefore, if you would like me to cover some special topic in more detail than others, don’t be shy and let me know ;-)

P.S. Also don’t forget that the paper submission deadline for RV is approaching quickly: June 1st!

Comments
Comments Off on Save the Date: Nov 1st-4th – Clara Tutorial at RV 2010
Categories
Research
Tags
Clara, Runtime verification, RV, Static Analysis

New Tech Report: Efficient and Precise Typestate Analysis by Determining Continuation-Equivalent States

Eric | September 10, 2009

image

I just uploaded a new Technical Report. The report (currently under submission) describes a novel typestate analysis, called Nop-Shadows Analysis,  that I implemented for my doctoral dissertation. The analysis is certainly one of my dissertation’s major technical contributions. I implemented the Nop-Shadows Analysis in the Clara framework, which means that you are welcome to download it, try it out or extend it.

Read the rest of this entry »

Comments
Comments Off on New Tech Report: Efficient and Precise Typestate Analysis by Determining Continuation-Equivalent States
Categories
Research
Tags
Clara, Static Analysis, Typestate

Now available: Clara, a novel framework for implementing hybrid typestate analyses

Eric | September 10, 2009

ClaraIn my doctoral dissertation (click here for a draft), I present Clara (Compile-time Approximation of Runtime Analyses), a novel research framework for the implementation of hybrid typestate analyses. Clara is now online – fully documented – at: http://www.bodden.de/clara/

Typestate properties aid program understanding, and one can even define type systems that prevent programmers from causing typestate errors, or derive static typestate analyses that try to determine whether a given program violates typestate properties. Unfortunately, the typestate-analysis problem is generally undecidable. Researchers have therefore proposed a hybrid approach that uses
static-analysis results to generate a residual runtime monitor. This monitor captures actual property violations as they occur, but only updates its internal state at relevant statements, as determined through static analysis.

Read the rest of this entry »

Comments
Comments Off on Now available: Clara, a novel framework for implementing hybrid typestate analyses
Categories
Research
Tags
Clara, Runtime Monitoring, Runtime verification, Static Analysis, Thesis, tracematches, Typestate

New publication: Finding Programming Errors Earlier by Evaluating Runtime Monitors Ahead-of-Time

Eric | July 31, 2008

image I am happy to announce the final version of our new FSE paper (joint work with Patrick Lam and my supervisor Laurie Hendren). You can grab the paper here. The idea of the paper is that runtime monitoring is nice because it manages to show you only actual errors, but nevertheless one should make a best effort to evaluate a runtime monitor ahead-of-time, i.e. at compile-time, as well as possible, so that programmers can find errors in the programs earlier in the development process.

Read the rest of this entry »

Comments
Comments Off on New publication: Finding Programming Errors Earlier by Evaluating Runtime Monitors Ahead-of-Time
Categories
Research
Tags
Bug finding, Object representatives, Runtime Monitoring, Runtime verification, Static Analysis, tracematches