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, "Supporting Dynamic Aspect-oriented Features", In ACM Transactions on Software Engineering and Methodology (TOSEM), Vol. 20, Issue 2, Oct 01, 2010. [PDF]
- Robert Dyer and Hridesh Rajan, "A Decision Tree-based Approach to Dynamic Pointcut Evaluation", Presentation at the Virtual Machines and Intermediate Languages for emerging modularization mechanisms (VMIL 2008), A workshop affiliated with OOPSLA 2008, Oct 19, 2008. Nashville, TN. [PDF]
- Robert Dyer and Hridesh Rajan, "A Decision Tree-based Approach to Dynamic Pointcut Evaluation", In Virtual Machines and Intermediate Languages for emerging modularization mechanisms (VMIL 2008), A workshop affiliated with OOPSLA 2008, Oct 19, 2008. Nashville, TN. [PDF]
- See more...