Address Binding and its Types

Last Updated : 12 Mar, 2026

Address Binding is the mapping of a logical (virtual) address to a physical address. It allocates a physical memory region to a logical pointer. It is the process of assigning physical memory addresses to program instructions and data. The OS handles this aspect of computer memory management on behalf of programs that need memory access.

  • Executes at compile time, load-time, or execution-time.
  • The linker and loader assign actual memory addresses.
  • Allows code relocation in memory.
  • Supports dynamic memory allocation at runtime.

Example: Consider a program that generates the following logical addresses during execution:

  • Logical Addresses: 0, 4, 8
  • Base (physical) address: 1000
Logical AddressPhysical Address
01000
41004
81008
Address Binding Rule: Physical Address = Base Address + Logical Address

Types of Address Binding

The mapping of data and computer instructions to actual memory locations is known as address binding. In computer memory, logical and physical addresses are employed.

source_code_
Divided into three types, but only one method can be applied.

Compile-Time Address Binding

Compile-time address binding assigns fixed physical addresses to symbolic addresses during compilation. Functions and global variables occupy the same memory locations at runtime. This method is simple and efficient but cannot adapt to runtime changes.

  • Done by the compiler during compilation.
  • Symbolic addresses linked to fixed physical addresses.
  • Addresses determined before program execution.
  • Suitable for functions and global variables.
  • Simple and efficient, but not adjustable at runtime.

Load Time Address Binding

Load Time Address Binding occurs when a program is loaded into memory. The loader assigns physical addresses, and the linker resolves external references. More flexible than compile-time binding, allowing memory adjustments and support for dynamic libraries.

  • Take place when the program is loaded into memory.
  • Performed by the OS memory manager (loader).
  • Loader assigns physical memory addresses during loading.
  • More flexible than compile-time binding.
  • Allows memory adjustments at load time.
  • Supports dynamic libraries

Execution Time or Dynamic Address Binding

Execution Time Address Binding occurs during program execution, allowing memory locations to change. Supports dynamic memory allocation, late binding, and polymorphism. Used in dynamic and object-oriented languages, with modern OSs like Windows, Linux, and Unix.

  • Performs during program execution.
  • Program memory locations may change at runtime.
  • Memory can be allocated and deallocated dynamically.
  • Most flexible type of binding.
  • Common in dynamic and object-oriented languages.


Comment