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:
1) Source code is tokenized and parsed into an abstract syntax tree. 2) The compiler checks types, performs analysis/optimizations. 3) It generates machine code or intermediate representation, then object files. 4) A linker resolves symbols and produces the final executable binary.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