SMALLTALK-80: the interactive programming environment
SMALLTALK-80: the interactive programming environment
An approach to genuine dynamic linking
Software—Practice & Experience
Tcl and the Tk toolkit
Communications of the ACM
Collaborative interface agents
AAAI '94 Proceedings of the twelfth national conference on Artificial intelligence (vol. 1)
Using interface inheritance to address problems in system software evolution
IDL '94 Proceedings of the workshop on Interface definition languages
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Programming python
COBRA fundamentals and programming
COBRA fundamentals and programming
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
The Java Tutorial: Object-Oriented Programming for the Internet
The Java Tutorial: Object-Oriented Programming for the Internet
Cross-Address Space Dynamic Linking
Cross-Address Space Dynamic Linking
The Object Binary Interface--C++ Objects for Evolvable Shared Class Libraries
The Object Binary Interface--C++ Objects for Evolvable Shared Class Libraries
Agent Tcl: a flexible and secure mobile-agent system
TCLTK'96 Proceedings of the 4th conference on USENIX Tcl/Tk Workshop, 1996 - Volume 4
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Type-based hot swapping of running modules (extended abstract)
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
MATA '00 Proceedings of the Second International Workshop on Mobile Agents for Telecommunication Applications
Active Networking Means Evolution (or Enhanced Extensibility Required)
IWAN '00 Proceedings of the Second International Working Conference on Active Networks
Evolution in Action: Using Active Networking to Evolve Network Support for Mobility
IWAN '02 Proceedings of the IFIP-TC6 4th International Working Conference on Active Networks
Runtime Support for Type-Safe Dynamic Java Classes
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
Lazy modular upgrades in persistent object stores
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Enabling autonomic behavior in systems software with hot swapping
IBM Systems Journal
Mutatis mutandis: safe and predictable dynamic software updating
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An approach to implementing dynamic adaptation in C++
DEAS '05 Proceedings of the 2005 workshop on Design and evolution of autonomic application software
Practical dynamic software updating for C
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Hotswapping Linux kernel modules
Journal of Systems and Software
MIS '05 Proceedings of the 2005 symposia on Metainformatics
Dynamic updates: another middleware service?
MAI '07 Proceedings of the 1st workshop on Middleware-application interaction: in conjunction with Euro-Sys 2007
Providing dynamic update in an operating system
ATEC '05 Proceedings of the annual conference on USENIX Annual Technical Conference
POLUS: A POwerful Live Updating System
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Mutatis Mutandis: Safe and predictable dynamic software updating
ACM Transactions on Programming Languages and Systems (TOPLAS)
A dynamic OSGi-based data stream system
Proceedings of the 5th Middleware doctoral symposium
Dynamic software updates: a VM-centric approach
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Dynamic Classes: Modular Asynchronous Evolution of Distributed Concurrent Objects
FM '09 Proceedings of the 2nd World Congress on Formal Methods
On Validity Assurance of Dynamic Reconfiguration for Component-based Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
Simple active mechanisms for measuring and monitoring service level topologies
IWAN'04 Proceedings of the 6th IFIP TC6 international working conference on Active networks
Dynamic code evolution for Java
Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java
Aspect-based dynamic software updating: a model and its empirical evaluation
Proceedings of the tenth international conference on Aspect-oriented software development
Run-time phenomena in dynamic software updating: causes and effects
Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution
Runtime adaptation of applications through dynamic recomposition of components
ARCS'05 Proceedings of the 18th international conference on Architecture of Computing Systems conference on Systems Aspects in Organic and Pervasive Computing
A dynamic class construct for asynchronous concurrent objects
FMOODS'05 Proceedings of the 7th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
Loosely-separated “sister” namespaces in java
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Using first-class contexts to realize dynamic software updates
Proceedings of the International Workshop on Smalltalk Technologies
Type-Safe runtime class upgrades in creol
FMOODS'06 Proceedings of the 8th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
Incremental dynamic updates with first-class contexts
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
Safe and automatic live update for operating systems
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
Unrestricted and safe dynamic code evolution for Java
Science of Computer Programming
Hi-index | 0.00 |
Techniques for dynamically adding new code to a running program already exist in various operating systems, programming languages and runtime environments. Most of these systems have not found their way into common use, however, since they require programmer retraining and invalidate previous software investments. In addition, many of the systems are too high-level for performance-critical applications. This paper presents an implementation of dynamic classes for the C++ language. Dynamic classes allow run-time updates of an executing C++ program at the class level. Our implementation is a lightweight proxy class that exploits only common C++ features and can be compiled with most modern compilers. The proxy supports version updates of existing classes as well as the introduction of new classes. Our language choice and proxy implementation is targeted towards performance-critical applications such as low-level networking in which the use of C++ is already widespread.