We describe a variant of the Standard ML programming language which incorporates a facility for the replacement of modular components during program execution. This useful extension of the language builds upon existing compiler technology which permits the separate compilation of modular units of a Standard ML program. Deﬁned naively, this extension would incur performance overheads due to the need to retain typing information at run-time. Here we explain how this cost can be signiﬁcantly lessened and in some cases eliminated entirely. The essential technical device which we employ for implementation of our extension to the language is a modiﬁcation of two-space copying garbage collection.
|Publication status||Published - 1997|
- modular programming
- static type checking
- dynamic languages