Symbol Table

A symbol table is a map from names (in this case labels) to their meanings (in this case memory addresses).

Generated during the assembly phase (see Stages of software compilation). Each object file’s symbol table serves 2 purposes:

  • For defined symbols: It lists the symbols that are defined in the object file itself, so other files can refer to them during the linking phase.
  • For undefined symbols: It tracks references to external symbols that the object file needs but doesn’t define. The linker will later resolve these.