Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Common LISP: the language (2nd ed.)
Common LISP: the language (2nd ed.)
Dynamic weaving for aspect-oriented programming
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
Just-in-time aspects: efficient dynamic weaving for Java
Proceedings of the 2nd international conference on Aspect-oriented software development
Load-Time Structural Reflection in Java
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
Runtime Support for Type-Safe Dynamic Java Classes
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Dynamic Replacement of Active Objects in the Gilgul Programming Language
CD '02 Proceedings of the IFIP/ACM Working Conference on Component Deployment
AspectS - Aspect-Oriented Programming with Squeak
NODe '02 Revised Papers from the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World
DYMOS: A dynamic modification system
SIGSOFT '83 Proceedings of the ACM SIGSOFT/SIGPLAN software engineering symposium on High-level debugging
Proceedings of the 3rd international conference on Aspect-oriented software development
Virtual machine support for dynamic join points
Proceedings of the 3rd international conference on Aspect-oriented software development
IBM Systems Journal
JAC: an aspect-based distributed dynamic framework
Software—Practice & Experience
Proceedings of the 4th international conference on Aspect-oriented software development
abc: an extensible AspectJ compiler
Proceedings of the 4th international conference on Aspect-oriented software development
Controlled, systematic, and efficient code replacement for running java programs
Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008
Dynamic software updates: a VM-centric approach
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Towards a dynamic-update-enabled JVM
Proceedings of the Workshop on AOP and Meta-Data for Software Evolution
Advanced runtime adaptation for Java
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
HotWave: creating adaptive tools with dynamic aspect-oriented programming in Java
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Execution levels for aspect-oriented programming
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Safe and atomic run-time code evolution for Java and its application to dynamic AOP
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Unrestricted and safe dynamic code evolution for Java
Science of Computer Programming
Hi-index | 0.00 |
Dynamic aspect-oriented programming (AOP) is a powerful approach for integrating new features into running applications without disrupting their execution. In Java, dynamic AOP frameworks often use runtime weaving of previously loaded classes, which is however severely restricted because of limitations in current Java Virtual Machines (JVMs). These constraints make it very difficult or even impossible to support important AOP features such as static join point information, around() advice, or explicit structural modifications of classes and the class hierarchy. In this position paper we advocate the idea of using advanced dynamic code evolution features to improve dynamic AOP. We present an enhanced JVM, based on a state-of-the-art production JVM, which offers unrestricted class redefiniton. Thanks to this feature, we are able to redesign the dynamic AOP framework HotWave in order to overcome the aforementioned restrictions in the programming model.