Maybe I'm missing something, but isn't Lisp the original version of this?
Lisp languages tend to blend together "runtime" with "load time", and in case of compiled languages, also "compile time". You can write code executing during any one, or any combination of, these phases. You can reuse code between those phases. You can interleave them at will - e.g. by loading more code at runtime, or invoking a compiler, etc.
MIT AI Memo 57, Timothy P. Hart, MACRO Definitions for LISP, October 1963
http://bitsavers.informatik.uni-stuttgart.de/pdf/mit/ai/aim/...