A Calculus of Untyped Aspect-Oriented Programs

James Riely
DePaul University

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)