RV Program is up

Eric | August 31, 2010

RV ConferenceThe program for RV 2010 is now available. (clap)

Comments
Comments Off on RV Program is up
Categories
Research
Tags
Malta, RV

Hosting a Program Committee meeting with Skype

Eric | August 30, 2010

Caller List I recently had the pleasure to host a PC Meeting conference call with skype, with 22 people! Actually things went surprisingly well. However, it really helps if people stick to a few rules. I have written down a few tricks that I learned on the way.

Comments
Comments Off on Hosting a Program Committee meeting with Skype
Categories
Research
Tags
AOSD, Skype

Soot is now invokedynamic-ready

Eric | August 24, 2010

As many of you may know, JDK 7 will bring support for a new bytecode called invokedynamic. Thanks to Matthias Perner, a bright student of ours, Soot is already ready for this new bytecode today. I have just committed appropriate changes to the SVN trunk. The new instructions are handled as follows:

  • On the Jimple, Grimp and Baf level, invokedynamic instructions appear as DynamicInvokeExpr with a static SootMethodRef that has class java.dyn.InvokeDynamic as target class. This is in accordance with the internal handling in JDK 7.
  • SootMethodRefs which have java.dyn.InvokeDynamic as target class may not be resolved: calling resolve() will throw an exception
  • On the Jasmin level, invokedynamic instruction appear in the form “invokedynamic <methodName>(<methodParams>)<methodRetType>“. In particular, there is no target class given.
  • Jasmin translates this into an invokedynamic instruction with two arguments:
    • a NameAndType attribute referring to <methodName>(<methodParams>)<methodRetType> and
    • the constant “0” (two zero bytes, i.e., a short); according to the VM spec this is reserved for future use.

The above is an experimental design. Comments are welcome! In the near future we plan to extend TamiFlex to handle invokedynamic as well.

Comments
1 Comment »
Categories
Research
Tags
invokedynamic, Soot

Clara: a Framework for Partially Evaluating Finite-state Runtime Monitors Ahead of Time

Eric | August 19, 2010

In my publications section you can now find our RV 2010 paper on the Clara Framework. This is by far the most concise introduction to Clara; therefore I hope that people will find it more accessible than my thesis. download the paper here

Abstract: Researchers have developed a number of runtime verification tools that generate runtime monitors in the form of AspectJ aspects. In this work, we present Clara, a novel framework to statically optimize such monitoring aspects with respect to a given program under test. Clara uses a sequence of increasingly precise static analyses to automatically convert a monitoring aspect into a residual runtime monitor. The residual monitor only watches events triggered by program locations that the analyses failed to prove safe at compile time. In two-thirds of the cases in our experiments, the static analysis succeeds on all locations, proving that the program fulfills the stated properties, and completely obviating the need for runtime monitoring. In the remaining cases, the residual runtime monitor is usually much more efficient than a full monitor, yet still captures all property violations at runtime.

Comments
Comments Off on Clara: a Framework for Partially Evaluating Finite-state Runtime Monitors Ahead of Time
Categories
Research
Tags
Clara, Runtime Monitoring, Runtime verification, RV, RV 2010

C# implementation of Arithmetic Coder

Eric | August 13, 2010

Quite a while back, Malte Clasen, Joachim Kneis and I wrote a seminar paper on Arithmetic Coding. Apparently it’s not a bad paper, as it has been heavily cited. In particular, people appear to appreciate Malte’s C++ implementation of Arithmetic Coding, which fits on a couple of pages. This week, Sina Momken emailed me a very nice re-implementation of the coder in C#. The implementation is available in source from our AC website. Thanks Sina!

Comments
Comments Off on C# implementation of Arithmetic Coder
Categories
Research
Tags
Arithmetic Coding

Lecture on Soot, Hands-on Tutorials on Clara

Eric | August 12, 2010

Dear all, for all of those of you who happened to be in Chile in November: I will be giving a lecture about the latest techniques in analyzing Java programs with Soot at the 3rd Summer School on Programming Languages, which is co-located with the Chilean Computing Week. You can find more information here. At the same even, I will moreover be giving a hands-on tutorial on Clara (“Partially evaluating finite-state runtime monitors ahead-of-time”), which is likely going to be similar to my RV tutorial.

Comments
Comments Off on Lecture on Soot, Hands-on Tutorials on Clara
Categories
Research
Tags
Chile, Clara, SCCC, Soot

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