A form of Modularisation where modules are linked at load-time (and not before producing a combined executable as in Separate Compilation Modularisation).

Features

  • Allows several programs to share the same module code in memory.
  • This saves memory and speeds up loading.
  • It allows linkable files to be loaded into memory where local addresses are resolved.
  • Programs that use the module are compiled/linked to include a stub that runtime loads the module and builds a table of addresses of module entities. This table is used by the program to access the module entities by indirection.
  • Module code has to be re-entrant, i.e. multiple invocations of the module must be able to safely run concurrently since multiple programs share it.
  • Reference counting is used to determine when memory for a module can be freed.