Difficulty: Easy
Correct Answer: linking loader
Explanation:
Introduction / Context:Large software systems are built from multiple object modules. Before execution, these modules must be combined, external symbols resolved, and final addresses assigned. The system program that performs this step bridges the gap between separate compilation and a runnable image.
Given Data / Assumptions:
Concept / Approach:A linking loader (or linker/loader combination) resolves external symbols, performs relocation as needed, and arranges code/data into the final memory image. An assembler translates assembly to object code but does not combine multiple modules. A cross compiler produces code for a different architecture. “Load and go” refers to immediate assembly-to-load workflows without a separate link step across many objects.
Step-by-Step Solution:
Collect object modules and libraries.Resolve undefined symbols using symbol tables.Relocate addresses according to placement decisions.Produce a loadable image for execution.Verification / Alternative check:Toolchains (e.g., ld, link.exe) demonstrate this process: invoking the linker merges objects and emits an executable that the loader places in memory at run/start time.
Why Other Options Are Wrong:
Assembler: translates source to object, not multi-module linking.Cross compiler: changes target architecture, not linking modules.Load and go: a style of assembler/loader integration, not the general multi-module linker role.Common Pitfalls:Equating loading (placing into memory) with linking (resolving symbols); many systems combine them, but the roles remain distinct.
Final Answer:linking loader.
Discussion & Comments