1. What is the primary purpose of code generation in a compiler?
A) To translate high-level language code into machine language
B) To optimize the source code
C) To detect and correct errors in the program
D) To generate intermediate representations of the code
Answer: A) To translate high-level language code into machine language
2. In the context of code generation, what does the term “target machine” refer to?
A) The hardware architecture for which the code is being generated
B) The programming language being used for generation
C) The system software used to execute the program
D) The intermediate representation of the program
Answer: A) The hardware architecture for which the code is being generated
3. Which of the following is a key step in the code generation process?
A) Lexical analysis
B) Optimization of loops
C) Mapping intermediate code to target machine instructions
D) Syntax checking
Answer: C) Mapping intermediate code to target machine instructions
4. What does “register allocation” refer to in code generation?
A) The process of assigning variable names to memory locations
B) The process of assigning variables to machine registers
C) The process of optimizing loops in the code
D) The process of handling function calls in the code
Answer: B) The process of assigning variables to machine registers
5. Which of the following is NOT typically involved in code generation?
A) Register allocation
B) Instruction selection
C) Intermediate code optimization
D) Memory management
Answer: C) Intermediate code optimization
6. What is the purpose of instruction selection in code generation?
A) To select the most efficient machine instructions for the target machine
B) To select the appropriate programming language for code generation
C) To detect syntax errors in the code
D) To optimize loops in the code
Answer: A) To select the most efficient machine instructions for the target machine
7. In code generation, which of the following would be considered an “addressing mode”?
A) Register
B) Stack
C) Direct memory access
D) All of the above
Answer: D) All of the above
8. Which type of code generation targets a specific machine architecture?
A) Source code generation
B) Machine-dependent code generation
C) Assembly code generation
D) Intermediate code generation
Answer: B) Machine-dependent code generation
9. Which of the following is a common target of code generation?
A) Assembly language
B) Intermediate code
C) High-level language code
D) Java bytecode
Answer: A) Assembly language
10. Which phase of the compiler is directly responsible for generating the executable code?
A) Lexical analysis
B) Syntax analysis
C) Code generation
D) Optimization
Answer: C) Code generation
11. In code generation, what is the role of the “instruction scheduler”?
A) To select the correct machine instructions
B) To reorder instructions to improve execution efficiency
C) To detect syntax errors
D) To handle function calls
Answer: B) To reorder instructions to improve execution efficiency
12. What does the term “instruction scheduling” in code generation refer to?
A) Determining which instructions are redundant
B) Determining the order in which machine instructions should be executed
C) Converting high-level code to assembly code
D) Removing unnecessary code
Answer: B) Determining the order in which machine instructions should be executed
13. Which of the following is an example of a target machine in code generation?
A) ARM architecture
B) High-level programming language
C) Intermediate representation
D) Abstract syntax tree
Answer: A) ARM architecture
14. In code generation, what is the purpose of “peephole optimization”?
A) To replace small instruction sequences with more efficient alternatives
B) To optimize the overall logic of the program
C) To generate machine code for a specific architecture
D) To detect and handle runtime errors
Answer: A) To replace small instruction sequences with more efficient alternatives
15. Which of the following is a major challenge in code generation?
A) Handling syntax errors
B) Mapping high-level language constructs to target machine instructions
C) Performing lexical analysis
D) Parsing intermediate code
Answer: B) Mapping high-level language constructs to target machine instructions
16. What is “register spilling” in the context of code generation?
A) Storing variables in memory instead of using machine registers when the registers are full
B) Moving variables between registers to optimize performance
C) Clearing unnecessary data from registers
D) Assigning registers to variables in the code
Answer: A) Storing variables in memory instead of using machine registers when the registers are full
17. Which of the following is a technique used during code generation to minimize the number of instructions?
A) Dead code elimination
B) Register allocation
C) Instruction selection
D) Instruction scheduling
Answer: A) Dead code elimination
18. In which phase of code generation is the target machine code actually produced?
A) Register allocation
B) Instruction selection
C) Code emission
D) Code optimization
Answer: C) Code emission
19. Which of the following is a key challenge of machine-dependent code generation?
A) Ensuring that the code runs on multiple platforms
B) Translating abstract syntax into machine-specific instructions
C) Generating high-level programming language code
D) Handling syntax errors in the code
Answer: B) Translating abstract syntax into machine-specific instructions
20. What does the term “target code” refer to in code generation?
A) The code generated by a compiler for a specific machine architecture
B) The intermediate code generated by the compiler
C) The source code before compilation
D) The high-level code that is being optimized
Answer: A) The code generated by a compiler for a specific machine architecture