On-the-Fly Program Modification: Systems for Dynamic Updating

``On-the-Fly Program Modification: Systems for Dynamic Updating'' by Mark E. Segal and Ophir Frieder. {IEEE} Software, vol. 10, no. 2, Mar. 1993.
Annotation: A good review of several updating systems. Categorizes software-based dynamic updating systems as those that replace abstract data types (e.g., Fabry), replace servers in client-server systems (e.g., Argus), update in constrained message-passing systems (e.g. Conic), and update programs in procedural languages (e.g., PODUS). Also details PODUS: a procedure-oriented dynamic updating system that can replace a procedure definition provided it is inactive, i.e., not on the stack, not used by any proc on the stack, and not semantically depended on by any proc on the stack. PODUS works in distributed environments that use RPC. Semantic dependencies between procs are specified by a programmer; semantically dependent procs must reside at the same physical site. PODUS uses ``interprocedures'' to map calls from an old version of a proc to a new version and uses ``mapper procedures'' to copy/convert static state from one proc to another. Thus, PODUS can support multiple interacting versions of concurrent, distributed programs.

BibTeX entry:

@article{segal93program,
   author = {Mark E. Segal and Ophir Frieder},
   title = {On-the-Fly Program Modification: {Systems} for Dynamic Updating},
   journal = {{IEEE} Software},
   volume = {10},
   number = {2},
   month = mar,
   year = {1993}
}

Also see software upgrades publications by date.

Sameer Ajmani