Skip to main content
Article thumbnail
Location of Repository

Virtual Machines for Aspect-Oriented Systems

By Giordano Battilana


Aspect Oriented Programming is a programming paradigm that allows separating frequently used functionalities (concerns) from the application logic, de facto enhancing the modularization of the code. Aspects are generally woven into the code at compilation time and thereafter left untouched. If an aspect is modified, a re-compilation is required in order to propagate the change into the code. In a scenario where aspects are used to dynamically change the behavior of an application according to environmental conditions, this is a relevant limitation.\ud In recent years, virtual-machines-based solutions for the dynamic weaving of aspects have started to gain popularity.\ud This thesis presents the design and implementation of the AspectK virtual machine, a virtual machine that supports the dynamic weaving and unweaving of aspects while a program is in execution. AspectK is a coordination language that natively supports the Aspect-Oriented Programming paradigm.\ud The dynamic weaving of aspects in the code is performed by a special component of the virtual machine, the weaver. The weaver supports three different strategies for weaving the aspects, each of them targeted to a different type of workload. The thesis presents the details of such strategies and the implications that their implementation have on the overall design of the virtual machin

Topics: ING-INF/05 Sistemi di elaborazione delle informazioni
Year: 2010
OAI identifier:
Provided by: Padua@thesis

Suggested articles


  1. (1999). and Vasco Thudichum Vasconcelos. A virtual machine for a process calculus. doi
  2. (2004). Applying aspect-orientation in designing security systems: A case study,
  3. (2001). Applying Aspect-Oriented Programming to Security.
  4. (2000). Aspect-oriented programming is quanti and obliviousness,
  5. (2003). AspectJ in Action: Practical Aspect-Oriented Programming. doi
  6. (2007). Bon er and Terracotta Eugene Kuleshov. Clustering the java virtual machine using aspect-oriented programming.
  7. (1998). klaim: a kernel language for agents interaction and mobility. doi
  8. (1999). On the Design and Implementation of a Virtual Machine for Process Calculi.
  9. Process algebra: Operators for process algebras, WS 07/08. Set of slides.
  10. (2000). Programming access control: The KLAIM Experience. doi
  11. (1974). Survey of Virtual Machines Research. doi
  12. (2005). The architecture of virtual machines. doi
  13. (2003). The klaim project: Theory and practice, doi
  14. (2005). Using a low-level virtual machine to improve dynamic aspect support in operating system kernels.
  15. (2005). Virtual Machine Support for Aspects with Advice Instance Tables. doi
  16. (2005). Virtual Machines: Versatile Platforms for Systems and Processes. doi

To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.