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
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.