AOSD deadline approaching: Perspectives on Modularity

Eric | June 10, 2010


AOSD 2011

The first submission deadline for AOSD 2011 is approaching rapidly. You have until July 1st to get your paper ready. It turns out that AOSD 2011 is going to be in beautiful Pernambuco, Brazil. It’s certainly going to be a great event. I hope to see you all there.

This year’s topic is Perspectives on Modularity, which means that AOSD explicitly invites papers that try to address modularity issues in general, the approach does not have to be restricted to what people frequently call “aspect-oriented programming”. The goal is to broaden the scope and to look for solutions beyond the usual paradigmn of pointcuts and advice.

Read the rest of this entry »

Comments
Comments Off on AOSD deadline approaching: Perspectives on Modularity
Categories
Research

Whole-program analysis, but without the JDK (using Soot)

Eric | June 4, 2010

In the past many people have asked how they can configure Soot so that it would analyze a given set of classes, but without analyzing all the internals of the JDK. Of course, such an analysis is generally unsound, but often people don’t really care – they just want to have fast results. I have often found myself in the same situation when testing whole-program analyses that I wrote myself. Every analysis run would normally take minutes to run, which can cause your day to pass by quickly when you are debugging a complicated analysis.

Today I added a new option to Soot: -no-bodies-for-excluded. This option causes Soot to not load any method bodies of classes from the “exclude” packages (see –exclude option), even in whole-program mode, unless the class is explicitly as a “basic class”. -no-bodies-for-excluded implies -allow-phantom-refs, as it uses the phantom-refs mechanism to model classes that are not loaded.

All changes have been committed to SVN. This feature is still experimental, but it appears to work for me – I am now able to run all of Clara‘s tests in seconds each instead of minutes each, just because they now ignore JDK classes.

Comments
Comments Off on Whole-program analysis, but without the JDK (using Soot)
Categories
Research
Tags
Java, Soot, Soot Tutorial

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

ICSE Presentation slides now online

Eric | May 8, 2010

ICSE 2010 PresentationSeveral people asked me for the slides of my ICSE presentation. I have just uploaded them, as Keynote and PDF (quite large). Enjoy!

P.S. Thanks to Zhifeng Lai for taking the picture!

Comments
Comments Off on ICSE Presentation slides now online
Categories
Research
Tags
Clara, ICSE

Submission deadline in 2 months: RV 2010 at Malta

Eric | March 30, 2010

RV Conference

 

 

 

 

 

 

 

 

 

Just in case you did not know yet: RV is becoming a conference. Submissions are due June 1st.

Runtime  verification (RV)  is concerned with monitoring and analysis of software  or hardware system executions.  The field is often referred to under different names, such as runtime verification, runtime monitoring, runtime  checking,   runtime  reflection,   runtime  analysis,   dynamic analysis,  symbolic dynamic analysis, trace analysis, log file analysis, etc.  RV can be used for many  purposes,  such as program understanding, systems  usage  understanding,  security  or  safety  policy monitoring,
debugging,  testing,  verification  and  validation,  fault  protection, behavior  modification (e.g.,  recovery),  etc.  A running system can be abstractly regarded as a generator of execution traces,  i.e., sequences of relevant  states or events.  Traces can be processed in various ways, e.g.,  checked  against formalized specifications, analyzed with special algorithms,  visualized,  etc.

Read the rest of this entry »

Comments
Comments Off on Submission deadline in 2 months: RV 2010 at Malta
Categories
Research
Tags
RV

Using Soot and TamiFlex to analyze DaCapo

Eric | March 29, 2010

In this tutorial, I describe how to use TamiFlex to facilitate the static analysis of the DaCapo benchmarks with Soot. You can also find this tutorial on the TamiFlex website.

Also feel free to use our scripts for this purpose. You can also find many details in our Technical Report.

Step 0: Downloading the necessary components

To analyze DaCapo benchmarks with Soot, first download the following:

Read the rest of this entry »

Comments
Comments Off on Using Soot and TamiFlex to analyze DaCapo
Categories
Research
Tags
Soot, Soot Tutorial, TamiFlex

Soot 2.4.0 released

Eric | March 29, 2010

I am pleased to announce that Soot version 2.4.0 is now available at:
http://www.sable.mcgill.ca/soot/

This release contains the following additions and improvements:

  1. Hossein Sadat-Mohtasham’s implementation of program dependency graphs
  2. Support for creating sound call graphs even for programs that use reflection, custom class loaders and runtime-generated classes. For this purpose, Soot uses TamiFlex to create a runtime log file that contains information about how reflection is being used. Spark then uses the log file during call-graph and points-to graph construction. See this tutorial for details.

Also we incorporated fixes to numerous bugs. Thanks for reporting bugs and/or providing fixes! See http://www.sable.mcgill.ca/soot/CHANGES for details.

As of version 2.2.0 the Soot bugzilla is available at: http://svn.sable.mcgill.ca/bugzilla/. We encourage you to add any Soot bugs there.

Comments
Comments Off on Soot 2.4.0 released
Categories
Research
Tags
Soot, TamiFlex

Taming Reflection – Static Analysis in the Presence of Reflection and Custom Class Loaders

Eric | March 25, 2010

I am happy to announce the first release of TamiFlex, our new tool suite for “taming reflection”. TamiFlex comes with an accompanying Technical Report. Using TamiFlex, you can, in combination with static-analysis tools such as Soot 2.4.0, analyze even such programs statically that use reflection and custom class loaders.

For instance, we describe how to use TamiFlex to statically analyze the new DaCapo “bach” release with Soot. This document gives an overview of the architecture of TamiFlex.

Read the rest of this entry »

Comments
Comments Off on Taming Reflection – Static Analysis in the Presence of Reflection and Custom Class Loaders
Categories
Research
Tags
Soot, TamiFlex

AOSD 2011 in Brazil

Eric | March 19, 2010


AOSD 2011

AOSD 2010 in Rennes and St Malo just finished. It was a great event, I really enjoyed the conference a lot. You can find some photos here. There was lots of interesting papers. The paper Execution Levels for Aspect-Oriented Programming by Eric Tanter won the best-paper award, certainly deserved, I think it’s great work.

It turns out that AOSD 2011 is going to be in beautiful Pernambuco, Brazil. It’s certainly going to be a great event, too. I hope to see you all there. AOSD 2011 is going to have two submission deadlines:

First Round

Research paper submission:Thursday, July 1st, 2010 (23:59 Samoan time)
Acceptance notification:Monday, September 6th, 2010 (23:59 Samoan time)

Second Round

Research paper submission:Friday, October 1st, 2010 (23:59 Samoan time)
Acceptance notification:Friday, December 10th, 2010 (23:59 Samoan time)
Camera-ready copy:Thursday, January 13th, 2011 (23:59 Samoan time)

You can submit to each round separately – both rounds are largely independent. However, if you submit to the first deadline then you have the advantage of (1) maybe having your paper accepted earlier or (2) if it gets rejected with a “resubmit again later” then you can re-submit an improved paper to the 2nd deadline. The goal is to enable a more journal-like review process that allows for correcting papers instead of having to reject them right away.

Comments
Comments Off on AOSD 2011 in Brazil
Categories
Misc, Research
Tags
AOSD

Automated Software Engineering

Eric | February 19, 2010

In the upcoming summer semester, Martin Monperrus and I will be teaching a new course on Automated Software Engineering, here at TU Darmstadt. During the course we will look at the entire development life-cycle from a tool perspective: How can automated tools support programmers during the design, implementation, testing and maintenance of a software product? We will talk about approaches to…

  • automated analysis & definition of requirements
  • computer-aided design of software
  • implementation with intelligent IDEs
  • automated testing and verification
  • computer-aided bug finding
  • aiding program understanding by mining latent specifications from existing software
  • advanced debugging & profiling techniques
  • computer-aided refactoring and documentation

The course webpage contains a rough outline of the topics that we have planned but at this point we are still open for suggestions, as long as they fit the general topic.

Comments
Comments Off on Automated Software Engineering
Categories
Research
Tags
Bug finding, Software Engineering, Teaching, Testing, Tools