Runtime Class Updates Using Modification Models
Dynamic updates in object-oriented languages require high-level changes to be translated to low-level changes. For example, removing an unused instance variable from a class may shift the indices of other instance variables. The shift needs to be translated to a change of the bytecodes accessing these instance variables. Current languages do not offer a bridge between the two levels of abstraction. The authors outline such a model, and demonstrate its usefulness by discussing a prototype implementation in Pharo Smalltalk. In addition to simplifying the implementation of dynamic updates, their model enables easy experiments in modifying the language semantics.