Difficulty: Easy
Correct Answer: Applies
Explanation:
Introduction / Context:
Software moves from human-friendly forms to CPU-executable forms through translation tools. This question distinguishes the compiler’s role from assemblers and interpreters.
Given Data / Assumptions:
Concept / Approach:
A compiler parses high-level syntax, performs semantic analysis and optimization, and emits machine code or an intermediate object file that is later linked. The result is a binary executable or library that the CPU can run. This is distinct from an assembler (assembly → machine) and an interpreter (executes source or bytecode step-by-step without producing a final native binary ahead of time).
Step-by-Step Solution:
Verification / Alternative check:
Build tools (e.g., gcc/clang) produce .o/.obj and then link to an .exe/.elf, demonstrating translation to machine code.
Why Other Options Are Wrong:
Does not apply: contradicts the role of a compiler. JIT is optional and not required. Assembly is translated by an assembler, not a high-level language compiler.
Common Pitfalls:
Confusing bytecode VMs with native compilation; equating “compiler” with “interpreter.”
Final Answer:
Applies
Discussion & Comments