Difficulty: Easy
Correct Answer: A-3, B-1, C-2, D-4
Explanation:
Introduction / Context:
Knowing the roles of firmware, compilers, assemblers, and virtual addressing is foundational for systems programming and embedded design. These terms describe how software is built and how memory is abstracted by operating systems and hardware.
Given Data / Assumptions:
Concept / Approach:
Each List I term has a canonical definition that unambiguously matches a List II description, focusing on the principal function rather than implementation details such as intermediate representations or linkers.
Step-by-Step Solution:
Verification / Alternative check:
Toolchains: source → compiler → object → linker → executable; low-level .asm → assembler → object. Operating systems expose large virtual memory spaces; MMU translates to physical frames.
Why Other Options Are Wrong:
Swapping compiler and assembler misunderstands abstraction levels. Firmware is not a translator; it is deployed software integral to hardware. Virtual addressing is not compilation; it is memory indirection and protection.
Common Pitfalls:
Conflating firmware with microcode (internal CPU control store) or drivers (host OS software). Also, assuming assemblers optimize like compilers; assemblers mostly map mnemonics directly to opcodes.
Final Answer:
A-3, B-1, C-2, D-4
Discussion & Comments