Abstract:
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. 1. Introduction ...
Citations
|
3856
|
Design Patterns: Elements of Reusable Object-Oriented Software
– Gamma, Helm, et al.
- 1995
|
|
1151
|
Tcl and the Tk Toolkit
– OUSTERHOUT
- 1994
|
|
376
|
Software agents
– Genesereth, Ketchpel
- 1994
|
|
222
|
Telescript technology: The foundation for the electronic marketplace
– White
- 1994
|
|
204
|
CORBA Fundamentals and Programming
– Siegel
- 1996
|
|
191
|
Smalltalk-80: The Interactive Programming Environment
– Goldberg
- 1984
|
|
177
|
Collaborative Interface Agents
– Lashkari, Metral, et al.
- 1994
|
|
150
|
Agent Tcl: A flexible and secure mobile-agent system
– Gray
- 1996
|
|
135
|
Operating system support for mobile agents
– Johansen, Renesse, et al.
- 1995
|
|
75
|
The C++ Programming Language, 3 rd edition
– Stroustrup
- 1997
|
|
47
|
Introduction and overview of the Multics system
– Corbat, Vyssotsky
- 1965
|
|
41
|
The Java Tutorial: Object-Oriented Programming for the Internet
– Campione, Walrath
- 1996
|
|
31
|
Dynamic Linking of Software Components
– Franz
- 1997
|
|
24
|
Shared Libraries in SunOS
– Gingell, Lee, et al.
- 1987
|
|
14
|
Using interface inheritance to address problems in system software evolution
– Hamilton, Radia
- 1994
|
|
12
|
The Object Binary Interface -- C++ Objects for Evolvable Shared Class Libraries
– Goldstein, Sloane
- 1994
|
|
11
|
Shared libraries as objects
– Seeley
- 1990
|
|
11
|
Adding new code to a running C++ program
– Dorward, Sethi, et al.
- 1990
|
|
6
|
Cross-Address Space Dynamic Linking
– Kempf, Kessler
- 1992
|
|
4
|
Incremental Loading of Subroutines at Runtime
– Puttress, Goguen
- 1986
|
|
4
|
Faster Dynamic Linking for SPARC V8 and System V.4
– Keppel, Russell
- 1993
|
|
3
|
The Design and Implementation of an Incremental Linker
– Quong
- 1989
|
|
3
|
Dynamic Module Replacement in a Distributed Pogramming System
– Bloom
- 1983
|
|
2
|
A Olsson. "An approach to genuine dynamic linking
– Ho, Ronald
- 1991
|
|
2
|
Issues in Shared Libraries Design
– Sabaella
- 1990
|
|
1
|
The basic of Java class loaders," JavaWorld
– McManis
- 1996
|
|
1
|
Are you being served
– Shah
- 1996
|
|
1
|
Dynamic Software Reconfiguration
– Beitz
|