What is Nu?
Nu (pronounced new) is a novel intermediate language design that aims to preserve in the object code the design modularity provided in source code by emerging modularization mechanisms, for improved scalability of software development processes.
Motivation
Emerging modularization mechanisms such as mix-ins, open classes, hyper-slices, composition filters, aspects, etc provide software engineers with new possibilities for keeping conceptual concerns separate at the source code level. For a number of reasons, for example to generate object code that is compliant with existing virtual machines (VM), to lower the barrier to entry, implementation techniques for these modularization mechanisms sacrifice this separation of concerns in transforming source to object code. To illustrate, let us consider the figure above. In the figure, C1 to Cn and C'1 to C'n are the base and the crosscutting concerns respectively. The figure shows that the concerns are separate in the domain, requirement, design and implementation phases. During compilation, to realize the crosscutting behavior, C1-Cn are now modified by inserting calls to and fragments from C'1-C'n. The implementations of the crosscutting concerns are scattered and tangled with the base code.
The aim of the Nu project is to show that, first, it is feasible to realize a programming model that preserves design modularity in object code, and second that preserving design modularity has the potential to improve the scalability of software development processes such as incremental compilation, debugging, etc.
Recent Publications/Presentations
- Robert Dyer and Hridesh Rajan, "Nu: a Dynamic Aspect-Oriented Intermediate Language Model and Virtual Machine for Flexible Runtime Adaptation", Seventh International Conference on Aspect-Oriented Software Development (AOSD 2008), Mar 31, 2008. Brussels, Belgium. [PDF]
Previous version appeared as Technical Report 07-06, Department of Computer Science, Iowa State University. [PDF] - Rakesh B. Setty, "Modular Compilation Strategies for AspectJ Constructs to Nu Intermediate Langugae", Poster presentation at the Sixth International Conference on Aspect-Oriented Software Development (AOSD 2007), Mar 15, 2007. Vancouver, Canada. [PNG]
- Robert Dyer, "Enhanced Intermediate Language Design to Preserve AO Modularity in Object Code", Poster presentation at the Sixth International Conference on Aspect-Oriented Software Development (AOSD 2007), Mar 15, 2007. Vancouver, Canada. [PNG]
- See more...