Nu: a Dynamic Aspect-Oriented Intermediate Language Model and Virtual Machine for Flexible Runtime Adaptation
By: Robert Dyer and Hridesh Rajan
Download PaperAbstract
A variety of dynamic aspect-oriented language constructs are proposed in recent literature with corresponding, compelling use cases. Such constructs, as well as other existing constructs such as cflow, demonstrate the need to dynamically adapt the set of join points intercepted at a fine-grained level. The notion of morphing aspects and continuous weaving is motivated by this need. In this work, we propose an intermediate language model called Nu, that extends object-oriented intermediate language models with two finegrained deployment primitives: bind and remove. These primitives offer a higher level of abstraction as a compilation target for dynamic aspect-oriented language constructs, compared to object-oriented intermediate language models, thereby making it easier to support such constructs. We also present the design and implementation of a prototype virtual machine that supports the Nu model, which serves to show that it is feasible to support such a flexible and dynamic intermediate language model in a production level virtual machine. We demonstrate the potential utility of the intermediate language design by expressing a variety of aspect-oriented source language constructs of dynamic flavor such as CaeserJ’s deploy, history-based pointcuts, and control flow constructs such as cflow in terms of the Nu model.
Other Info
Previous version appeared as Technical Report 07-06, Computer Science, Iowa State University, June 03, 2007.
See also this preliminary poster paper on this topic: FSE-2006
ACM Reference
Dyer, R. and Rajan, H. 2008. Nu: a Dynamic Aspect-Oriented Intermediate Language Model and Virtual Machine for Flexible Runtime Adaptation. AOSD ’08: Proceedings of the 7th International Conference on Aspect-oriented Software Development (New York, NY, USA, 2008).
BibTeX Reference
@inproceedings{dyer2008nu,
author = {Robert Dyer and Hridesh Rajan},
title = {Nu: a Dynamic Aspect-Oriented Intermediate Language Model and Virtual Machine for Flexible Runtime Adaptation},
booktitle = {AOSD '08: Proceedings of the 7th International Conference on Aspect-oriented Software Development},
year = {2008},
location = {Brussels, Belgium},
publisher = {ACM},
address = {New York, NY, USA},
entrysubtype = {conference},
abstract = {
A variety of dynamic aspect-oriented language constructs are proposed in
recent literature with corresponding, compelling use cases. Such constructs,
as well as other existing constructs such as cflow, demonstrate the need to
dynamically adapt the set of join points intercepted at a fine-grained level.
The notion of morphing aspects and continuous weaving is motivated by this
need. In this work, we propose an intermediate language model called Nu, that
extends object-oriented intermediate language models with two finegrained
deployment primitives: bind and remove. These primitives offer a higher level
of abstraction as a compilation target for dynamic aspect-oriented language
constructs, compared to object-oriented intermediate language models, thereby
making it easier to support such constructs.
We also present the design and implementation of a prototype virtual machine
that supports the Nu model, which serves to show that it is feasible to
support such a flexible and dynamic intermediate language model in
a production level virtual machine. We demonstrate the potential utility of
the intermediate language design by expressing a variety of aspect-oriented
source language constructs of dynamic flavor such as CaeserJ's deploy,
history-based pointcuts, and control flow constructs such as cflow in terms
of the Nu model.
}
}