Runtime Programming Through Model-Preserving, Scalable Runtime Patches
The authors consider a methodology for flexible software design, run-time programming, defined by recurrent, incremental software modifications to a program at run-time, called run-time patches. The principles they consider for run-time programming are model preservation and scalability. Model preservation means that a run-time patch preserves the programming model in place for programs - in terms of syntax, semantics, and correctness properties - as opposed to an "Ad-hoc", disruptive operation, or one that requires an extra level of abstraction. Scalability means that, for practicality and performance, the effort in program compilation required by a run-time patch should ideally scale in proportion to the change induced by it.