TIN2004-03453: Dynamic Weaving Aspect System over a Reflective Platform

This project is aimed at investigating how different reflective technologies can be used to develop a dynamically weaving aspect-oriented computing system, without any dependency of a concrete programming language, built over a heterogeneous computing platform. An abstract machine with a reduced instruction set has been employed as the root computation system’s engine; it offers the programmer basic reflection computation primitives. Its reduced size and its introspective capabilities, make it easy to be deployed in heterogeneous computational systems, becoming a platform-independent computational system. By using the reflective features offered by the abstract machine, the running applications can be adapted and extended. This would be programmed on its own language, without needing to modify the virtual machine’s source code and, therefore, without loosing code portability. As an example of its extensiveness, new software aspects can be programmed achieving facilities such as persistence, distribution, logging or trace. All this new abstractions are adaptable at runtime to any application. By using a reflective language-neutral computing platform, a framework has been created to develop dynamic weaving aspect scenarios. No needing to modify application’s functional code, new crosscutting concerns will be weaved to any program at runtime. Following the same scheme, when this dynamic and language-neutral aspects are needed no more, they could be suppressed at runtime in a programmatically way –i.e., not only a human could adapt an application at runtime but another program or even itself could do it.