- A Lexical Analysis
- B Semantic Analysis
- C Syntax Analysis
- D Intermediate Code Generation
Syntax analysis, also known as parsing, is the phase where the compiler analyzes the structure of the source code and generates an intermediate representation.
Lexical analysis is responsible for identifying and categorizing tokens in the source code, such as keywords, identifiers, and operators.
Code generation is the phase where the compiler translates the high-level source code into machine code executable by the target computer.
Instruction scheduling is a compiler optimization technique that rearranges the order of instructions to reduce program execution time.
Common Subexpression Elimination is a compiler optimization technique that reduces redundant computations by identifying and eliminating repeated expressions.
Register Allocation is a compiler optimization technique that aims to efficiently use CPU registers during program execution, enhancing performance.
The linker is responsible for resolving references to external functions and variables, ensuring the correct linkage of program components.
Loop Unrolling is a compiler optimization technique that aims to improve program performance by reducing the overhead of loop control instructions.
Code Generation is the compiler phase that determines the lifetime of variables and allocates memory for them during program execution.
The Assembler is responsible for translating machine code into assembly code, making it more human-readable.