Language Features For Program Monitoring

Stc
Date: 2005-11-14

Time: 11:00

Room: BBL 471

Speaker: Prof. Dr. Oege de Moor, Programming Tools Group, Oxford University Computing Laboratory (work by the abc team, http://aspectbench.org)

Title: Language Features for Program Monitoring

Abstract

Program monitoring is the process of putting a probe on existing software, typically to take some application-specific measurements or to check a system-wide policy. Aspect-oriented programming provides language features that make it very easy to build such monitors. Conceptually, an aspect observes the behaviour of a system; when certain events of interest occur, it runs some code of its own. The events of interest are specified via patterns.

In this talk, I will describe an extension of aspects where the patterns range over the whole execution history, not just over single events. Starting from a very simple declarative semantics, we derive a complex operational semantics.

The design has been implemented in the AspectBench Compiler (abc), as a seamless extension to the full AspectJ language, which in turn is an extension of Java with aspects. A naive implementation would lead to severe space leaks, as partial matches would never get garbage collected. I shall present a solution to that problem, and some comparative experiments with similar systems.