Difficulty: Easy
Correct Answer: It must be loaded (and possibly linked/relocated) before execution
Explanation:
Introduction / Context:
Software toolchains transform human-readable source into machine-usable forms. Understanding the difference between object code and executable images clarifies the roles of compilers, assemblers, linkers, and loaders.
Given Data / Assumptions:
Concept / Approach:
Object files are intermediate artifacts. A linker combines one or more object files and libraries, resolves symbols, and produces an executable or shared library. A loader then places the program in memory and transfers control.
Step-by-Step Solution:
Source → compile/assemble → object (.o/.obj).Link objects → executable image (.exe, ELF, Mach-O).Loader maps the image into memory and starts execution.
Verification / Alternative check:
Toolchain manuals show that both compilers and assemblers emit object files, and executables are produced after linking; relocation info confirms the need for loading/relocation.
Why Other Options Are Wrong:
Option A confuses object code with a final load module.Option B is false—assemblers also produce object code.Option D is incorrect; object code is processed by tools, not rewritten manually.
Common Pitfalls:
Final Answer:
It must be loaded (and possibly linked/relocated) before execution.
Discussion & Comments