Language Features For Program Monitoring
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
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.