Monday, April 14, 2:00PM
Lieb 3rd floor Conference Room
Abstract
Aspects have emerged as a powerful tool in the design and
development of systems. Currently, the dynamic semantics of aspects
is described by a compilation (weaving) to an underlying
object-oriented paradigm. This treatment is unsatisfactory for
several reasons. Firstly, this semantics violates basic modularity
principles of object-oriented programming. Secondly, the converse
translation from object-oriented programs into an aspect framework has
a simple canonical flavor. Taken together, these observations suggest
that aspects are worthy of study as primitive computational
abstractions in their own right. In this paper, we describe an aspect
calculus and describe its operational semantics. The calculus is rich
enough to encompass many of the features of extant aspect-oriented
frameworks that do not involve reflection. The independent
description of the dynamic semantics of aspects enables us to specify
the correctness of a weaving algorithm. We formalize weaving as a
translation from the aspect calculus to a pure object calculus, and
prove its soundness.
(Joint work with Radha Jagadeesan and Alan Jeffrey)