Technical Report Number
Software modiﬁcation at run-time can facilitate rapid prototyping, streamline development and debugging, and enable interactive educational programming environments. However, sup-porting live ﬁne-grain program modiﬁcation while reaping the beneﬁts of a compiled type-safe language is a challenging problem. This paper presents ﬁne-grain dynamic classes that support live object-oriented software development in which a program can be modiﬁed during execution. We present an implementation of dynamic classes in Java that does not require modiﬁcation of the Java Virtual Machine. Our implementation supports full interoperability between instances of dynamic classes and compiled classes, including polymorphism, with minimal overhead. Changes to dynamic classes, such as the declaration of instance variables and methods, as well as the modiﬁcation of statements and expressions within method bodies, take immediate eﬀect on existing instances of those classes. We describe beneﬁts of using dynamic classes in the context of a tightly integrated development environment.
Goldman, Kenneth G., "Live Software Development with Dynamic Classes" Report Number: WUCSE-2004-81 (2004). All Computer Science and Engineering Research.