Eric Bodden Current conditions in Darmstadt: Scattered Clouds, 20°C
20°C

Easy and efficient software verification
  • rss
  • Home
  • Research
    • Publications
    • Presentations
    • Past Research
      • Efficient Runtime Verification
      • Racer: Effective Race Detection Using AspectJ
      • Continuation-equivalent states (ICSE 2010)
      • Aspect-oriented programming and design
      • Visual specification languages
      • A denial-of-service attack on the Java bytecode verifier
  • Tools
    • TamiFlex – a tool suite for taming reflection
    • Clara: Compile-time Approximation of Runtime Analyses
    • RacerAJ (for race detection)
    • An introduction to Soot 2.2.5
    • Aspect-oriented approaches targeting the .NET Framework
  • Teaching
    • Automated Software Engineering
    • Software-Engineering Project
    • COMP 520
    • COMP 621
  • Legacy
    • Bad Sector Recovery on NTFS
    • Arithmetic Coding
    • PHP Scripts
  • About me
  • Photos

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.

The problem with such an approach is that it can potentially yield a lot of false positives. We therefore extend our flow-insensitive analysis from earlier work with a new flow-sensitive checker that removes even more false positives. We furthermore add a ranking and filtering stage that weeds out almost all remaining false positives based on a machine learning algorithm (implemented in Weka) – see the Figure to the right. In result, the analysis indeed reports virtually all true positives (i.e. actual programming errors), and virtually only those, already at compile time.

I think the idea of using machine learning to weed out “bad results” of static analyses can make sense in general. So that’s maybe something you want to take away form this.

Another interesting point about the paper is that the flow-sensitive stage is intraprocedural. To quote from the paper:

The most important finding of the methods presented in this paper is that we can successfully reason about tracematch states by combining inexpensive whole-program summary information with a suite of carefully-designed intraprocedural flow-sensitive analyses […]. Our abstraction associates two kinds of information with each state: positive information (an object may be in a particular state) and negative information (an object is not in a state). In our benchmarks, the combination of positive and negative information enables us to eliminate most false positives.

The fact that the analysis is intraprocedural means that it is maybe not as precise as it could be (yet often precise enough), but on the other hand it is a lot faster compared to fully interprocedural approaches.

At compile time we model runtime objects through object representatives, a novel abstraction that almost transparently replaces runtime objects by compile-time objects. Object representatives have an identity, just as runtime objects, defined by a flow-sensitive must-alias analysis, and they support must-not-alias queries, resolved through a combination of an intraprocedural flow-sensitive must-not-alias analysis and an interprocedural flow-insensitive context-sensitive points-to analysis. If you are interested in finding out more about object representatives, check out this paper. The paper will be published at BCS 2008 (more to come).

To find out more about our FSE paper and the experiments conducted for the paper, have a look at the abc website.





Related posts and pages:

  1. Now available: Clara, a novel framework for implementing hybrid typestate analyses In my doctoral dissertation (click here for a draft), I...
  2. New Tech Report: Efficient and Precise Typestate Analysis by Determining Continuation-Equivalent States I just uploaded a new Technical Report. The report (currently...

Categories
Research Blog
Tags
Bug finding, Object representatives, Runtime Monitoring, Runtime verification, Static Analysis, tracematches
Comments rss
Comments rss
Trackback
Trackback

« Finally! New publication: Object representatives: a uniform abstraction for pointer information »

Leave a Reply

Click here to cancel reply.

ISSTA

Welcome

Welcome to my website. Interested in my research? Click here for details or jump directly to my publications.

Pages

  • Research
    • Publications
    • Presentations
    • Past Research
      • Continuation-equivalent states (ICSE 2010)
      • Efficient Runtime Verification
      • Racer: Effective Race Detection Using AspectJ
      • Aspect-oriented programming and design
      • Visual specification languages
      • A denial-of-service attack on the Java bytecode verifier
  • Tools
    • TamiFlex – a tool suite for taming reflection
    • Clara: Compile-time Approximation of Runtime Analyses
    • RacerAJ (for race detection)
    • An introduction to Soot 2.2.5
    • Aspect-oriented approaches targeting the .NET Framework
  • Teaching
    • Automated Software Engineering
    • Software-Engineering Project
    • COMP 520
    • COMP 621
  • Legacy
    • Arithmetic Coding
    • Bad Sector Recovery on NTFS
    • PHP Scripts
  • About me

Categories & Feeds

  • Research Blog RSS Feed Icon (80)
  • Comments (RSS) RSS Feed Icon

Colleagues

  • Gregory Prokopski
  • Laurie Hendren
  • Nomair Naeem
  • Ondrej Lhotak
  • Patrick Lam
  • Programming Tools Group, Oxford
  • Sable lab, McGill
  • Software Technology Group, Darmstadt

Kitchensink

  • Conferences
  • My first patent: Method and system for performance profiling of software (pending)
  • Photos

Research projects

  • AspectBench Compiler (abc)
  • Clara
  • J-LO
  • Soot
  • Stratified aspects
  • TamiFlex

Service

  • AOSD 2006
  • AOSD 2007
  • AOSD 2010
  • AOSD 2011
  • Association of Alumni, Friends, and Supporters of the RWTH Aachen University in North America
  • ATVA 2008
  • ECOOP 2008 Doctoral Symposium
  • ECOOP 2010
  • FOAL 2010
  • ICSE 2010
  • IEEE Transactions on Software Engineering (TSE)
  • International Journal of Image and Graphics
  • ISSTA 2011
  • NFM 2011
  • OOPSLA 2008
  • OOPSLA 2010
  • PEPM 2008
  • PLDI 2006
  • PLDI 2008
  • RV 2007
  • RV 2009
  • RV 2010
  • SEFM 2005
  • SEFM 2008
  • Transactions on Software Engineering and Methodology (TOSEM)
  • VMIL 2008
  • VMIL 2009

Some other people I know

  • Adrian Colyer
  • Bruno Dufour
  • Dan North
  • Daniel Klink
  • Dave Thomas
  • Dean Wampler
  • Eric Tanter
  • Friedrich Steimann
  • Joachim Kneis
  • Klaus Havelund
  • Liz Keogh
  • Malte Clasen
  • Markus Schorn
  • Pascal Costanza
  • Patricia Jablonski
  • Philip Mayer
  • Ron Bodkin
  • Sven Wittig
  • Wiebke Berg

Some people not to confuse me with

  • Eric B. the terrorist
  • Eric Bodden the basketball player
  • Eric Bodden the chef who sunk
  • Master Sgt. Eric Bodden

Previous posts

July 2008
M T W T F S S
« Jun   Aug »
 123456
78910111213
14151617181920
21222324252627
28293031  

Tags

Alumni AOSD AspectJ Atlanta Blizzard Bug finding Clara COMP 621 Eclipse FSE Google ISSTA Java LinkedIn Mac McGill Microsoft Montreal Blog NASA OOPSLA Photos Politics Programming Quebec City Race detection Racer Random ranting Runtime verification RWTH Seattle Slides Snow storm Soot Soot Tutorial Static Analysis Strike TamiFlex TA strike Thesis tracematches Typestate Vacation Website Winter carnival Wordpress


rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress get firefox