AOSD 2008 at Brussels

Eric | April 10, 2008

IMG_1449I just returned from a trip to Germany and to AOSD 2008 in Brussels. It was truly a great conference. The research talks were almost all really interesting, I did some great networking and the social program was absolutely outstanding (I just say chocolate tasting and beer tasting!). Some of the talks that I enjoyed most were Aspect Oriented Test Case Instantiation by Benz and the keynotes by Daniel Wiese and Philip Wadler (Mr. “Super-Lambda”). Unfortunately I missed the third keynote because of the social events in the night before 😉

IMG_1514I stayed a few days longer to visit the Programming Technology Lab at VUB, specifically Charlotte Herzeel and Pascal Costanza. Thanks for having me and thanks for all the interesting discussions!

I uploaded some photos to my gallery. In the next days I will be adding photos from our RWTH Alumni meeting which I am currently attending in Atlanta. 

Comments
Comments Off on AOSD 2008 at Brussels
Categories
Research

Soot 2.2.5 is here!

Eric | March 18, 2008

image

Today we released version 2.2.5 of Soot, our program analysis and transformation framework for Java. Release 2.2.5 contains some exciting new features, for example:

Furthermore there have been several improvements to the Soot Eclipse plugin to enhance its ease of use.

More information and installation instructions here.

Comments
Comments Off on Soot 2.2.5 is here!
Categories
Research
Tags
Eclipse, McGill, Points-to analysis, Sable, Soot

A denial-of-service attack on the Java bytecode verifier

Eric | March 12, 2008

I just uploaded a somewhat older project report that I wrote about two years ago. The report describes a denial-of-service attack on the pre-Java6 bytecode verifier. People were asking for benchmarks on type inference – I think this is a good one. You can even try out the attack yourself. I have a demo online! See here.

Comments
Comments Off on A denial-of-service attack on the Java bytecode verifier
Categories
Research

Ph.D. Students! Here's your chance to get to beautiful Cyprus!

Eric | March 2, 2008

image You are a Ph.D. student in Computer Science and have at lest 12 months before defending your dissertation? Does your thesis topic has anything at all to do with the following topic around object-orientation?

  • Analysis, design methods and design patterns
  • Concurrent, real-time or parallel systems
  • Databases, persistence and transactions
  • Distributed and mobile systems
  • Frameworks, product lines and software architectures
  • Language design and implementation
  • Testing and metrics
  • Programming environments and tools
  • Theoretical foundations, type systems, formal methods
  • Versioning, compatibility, software evolution
  • Aspects, Components, Modularity, Reflection
  • Collaboration, Workflow

Then you might consider submitting to the ECOOP 2008 Doctoral Symposium and PhD Student Workshop. It’s going to be in July at the beautiful Mediterranean island Cyprus! Note that those are two distinct, but joint events:

  • the Doctoral Symposium, and
  • the PhD Students’ workshop.

The former is meant to be for students that have already chosen their topic and have some idea about what they are doing, while the latter is addressed primarily to PhD students in the early stages of their PhD work. The goal is to allow participants to present their research ideas and obtain feedback from the rest of the workshop attendees.

Comments
Comments Off on Ph.D. Students! Here's your chance to get to beautiful Cyprus!
Categories
Research

Relational Aspects as Tracematches

Eric | February 10, 2008

image You might remember my previous post (or that one) about relational aspects. As I mentioned there, relational aspects allow you to associate certain objects with an aspect and execute pieces of advice in this aspect in the context of these objects.

We have now published the final camera ready version of our AOSD 2008 submission. There we show in particular how relational aspects can be implemented using tracematches. Further, we show you what relational tracematches are, and we give examples of how use both, relational aspects and tracematches, such as caching or the observer pattern. You can grab the AOSD paper directly from here. Or, in case you are interested in all the nifty details, grab our updated and extended technical report version. Also, in case you have any comments on this work, please let me know!

Comments
Comments Off on Relational Aspects as Tracematches
Categories
Research
Tags
AOP, Java, Relational aspects

Proposal slides online

Eric | December 12, 2007

image Hey, I just passed my Ph.D. proposal exam today! I decided to upload my slides, because apparently people enjoyed them a lot. You can get them from here.

Presentation Zen has a long list of good tips of how to design beautiful slides.

Comments
Comments Off on Proposal slides online
Categories
Research
Tags
Bug finding

Detecting non-local violations of API contracts in large software systems

Eric | December 3, 2007

image I just put some slides online that describe my PhD topic pretty much in terms. They are available in Powerpoint 2007 and PDF formats.

Comments
Comments Off on Detecting non-local violations of API contracts in large software systems
Categories
Research

New TR: Static Analysis Techniques for Evaluating Runtime Monitoring Properties Ahead-of-Time

Eric | November 23, 2007

imageToday I am proud to present our brand new Technical Report in which Patrick Lam, Laurie Hendren and me present how you can use static analysis to evaluate runtime monitoring properties ahead-of-time, i.e. at compile time opposed to at runtime.

We have been working on this topic for about a year now, with different approaches and it actually took us until some weeks ago to get it actually all worked out. The coolest thing is that the approach we found in the end is really surprisingly simple, yet very effective. All it needs is a good static abstraction and super-precise pointer analysis. That’s it. The problem that we had before was that we were tying to make things more complicated than they were.

Read the rest of this entry »

Comments
Comments Off on New TR: Static Analysis Techniques for Evaluating Runtime Monitoring Properties Ahead-of-Time
Categories
Research
Tags
Bug finding, Java, Programming

Java and generics: handle with care – part 2

Eric | November 23, 2007

This is a follow-up to my earlier posting in which I was ranting about Java generics. Subject of the post were these two pieces of Java code:

Set<String> stringSet = new HashSet<String>();
Set<String> otherStringSet = new HashSet<String>();
otherStringSet.add((String) stringSet);
Set<List> listSet = new HashSet<List>();
Set<List> otherListSet = new HashSet<List>();
otherListSet.add((List) listSet);

The first one gives a static type error in line 3 because obviously one cannot cast a Set to a String. What confused me was that the second piece of code is (statically) well-typed. You will get a runtime error on the cast (List) listSet, but no compile time error. Why is that?

Read the rest of this entry »

Comments
Comments Off on Java and generics: handle with care – part 2
Categories
Research
Tags
Java, Programming

How relational aspects could have helped Princeton win the DARPA challenge

Eric | November 18, 2007

image Bryan Cattle recently explained why their autonomous car developed for the DARPA urban challenge did not make it: They simply had a memory leak in their C# code, filling up their entire heap space after about 28 minutes which made the computer crash. It’s important to note that this is not at all any flaw in C#. As C# is now, it was the programmers’ fault: In their code they kept around a list of obstacles which the car passed by. Obstacles that came out of sight were deleted… but not quite. Because the obstacles were registered as event listeners somewhere else in the code they were reachable and hence could not be garbage collected. Too bad, but how could such a problem have been avoided?

Read the rest of this entry »

Comments
Comments Off on How relational aspects could have helped Princeton win the DARPA challenge
Categories
Research
Tags
Bug finding, Coding, DARPA challenge, Java