Das Zuordnen von Code an Speicheradressen kann zu drei unterschiedlichen Zeitpunkten geschehen:
graph TB A((source<br>program)) --> B subgraph Compile Time B[compiler or<br>assembler] end C((object<br>module)) D((other<br>object<br>modules)) subgraph Load Time E[linkage<br>editor] E --> F((load<br>module)) G((system<br>library)) --> H[loader] end B --> C C --> E D --> E F --> H I((dynamically<br>loaded<br>system<br>library)) -- dynamic linking --> J H ---> J subgraph Execution/Run Time J[in-memory<br>binary<br>memory<br>image] end