Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Introduction to compiling & Lexical Analysis MCQs

  1. What is a compiler?
    a) A hardware device
    b) A software program
    c) A peripheral device
    d) A storage device
    Answer: b) A software program
    Explanation: A compiler is a software program that translates source code written in a high-level programming language into machine code that can be understood and executed by a computer.
  2. Which of the following is a major data structure used in compilers?
    a) Arrays
    b) Stacks
    c) Trees
    d) Linked lists
    Answer: c) Trees
    Explanation: Trees, particularly Abstract Syntax Trees (ASTs), are commonly used in compilers for representing the structure of source code.
  3. How many types of compilers are there based on the translation process?
    a) One
    b) Two
    c) Three
    d) Four
    Answer: b) Two
    Explanation: Compilers can be classified into two types based on the translation process: Single-pass compilers and Multi-pass compilers.
  4. Which part of the compiler translates high-level code into intermediate code?
    a) Front-end
    b) Back-end
    c) Middle-end
    d) Preprocessor
    Answer: a) Front-end
    Explanation: The front-end of the compiler translates high-level source code into an intermediate representation or code.
  5. Which part of the compiler generates machine code from the intermediate code?
    a) Front-end
    b) Back-end
    c) Middle-end
    d) Postprocessor
    Answer: b) Back-end
    Explanation: The back-end of the compiler generates machine code from the intermediate representation produced by the front-end.
  6. Which model of compilation involves two phases: analysis and synthesis?
    a) Single-pass model
    b) Multi-pass model
    c) Analysis-synthesis model
    d) Interpretation model
    Answer: c) Analysis-synthesis model
    Explanation: The analysis-synthesis model involves two main phases: analysis, where the source code is analyzed, and synthesis, where the target code is generated.
  7. Which phase of the compiler checks the syntax of the source code?
    a) Lexical analysis
    b) Semantic analysis
    c) Syntax analysis
    d) Code generation
    Answer: c) Syntax analysis
    Explanation: Syntax analysis, also known as parsing, checks the syntax of the source code to ensure it follows the rules of the programming language’s grammar.
  8. What is the purpose of lexical analysis in a compiler?
    a) Checking syntax errors
    b) Generating machine code
    c) Tokenizing the source code
    d) Optimizing code
    Answer: c) Tokenizing the source code
    Explanation: Lexical analysis breaks the source code into tokens such as keywords, identifiers, operators, etc., which are the basic building blocks of the language.
  9. Which phase of lexical analysis involves grouping characters into tokens?
    a) Input buffering
    b) Token specification
    c) Token recognition
    d) Token generation
    Answer: c) Token recognition
    Explanation: Token recognition involves identifying and grouping characters into tokens based on predefined patterns.
  10. Which tool is used for generating lexical analyzers automatically?
    a) Yacc
    b) Bison
    c) Flex
    d) ANTLR
    Answer: c) Flex
    Explanation: Flex is a tool for generating lexical analyzers automatically based on regular expressions specified by the user.
  11. What does LEX stand for?
    a) Lexical Extraction
    b) Lexical Extension
    c) Lexical Analyzer Generator
    d) Lexical Expression
    Answer: c) Lexical Analyzer Generator
    Explanation: LEX is a lexical analyzer generator that produces lexical analyzers based on user-specified regular expressions.
  12. Which phase of the compiler handles input buffering?
    a) Lexical analysis
    b) Syntax analysis
    c) Semantic analysis
    d) Code generation
    Answer: a) Lexical analysis
    Explanation: Input buffering involves reading characters from the source file and buffering them for processing by the lexical analyzer.
  13. Which data structure is commonly used for implementing symbol tables in compilers?
    a) Arrays
    b) Linked lists
    c) Hash tables
    d) Trees
    Answer: c) Hash tables
    Explanation: Hash tables are commonly used for implementing symbol tables due to their efficiency in searching, insertion, and deletion operations.
  14. Which phase of the compiler checks the meaning of the source code?
    a) Lexical analysis
    b) Syntax analysis
    c) Semantic analysis
    d) Code generation
    Answer: c) Semantic analysis
    Explanation: Semantic analysis checks the meaning of the source code, ensuring that it adheres to the language’s semantic rules.
  15. Which phase of the compiler translates intermediate code into machine code?
    a) Lexical analysis
    b) Syntax analysis
    c) Semantic analysis
    d) Code generation
    Answer: d) Code generation
    Explanation: Code generation translates the intermediate representation produced by earlier phases into machine code for execution by the target machine.
  16. Which part of the compiler optimizes the generated code for efficiency?
    a) Lexical analysis
    b) Syntax analysis
    c) Semantic analysis
    d) Code optimization
    Answer: d) Code optimization
    Explanation: Code optimization improves the efficiency of the generated code by applying various transformations to reduce execution time or memory usage.
  17. Which phase of the compiler resolves references to variables and functions?
    a) Lexical analysis
    b) Syntax analysis
    c) Semantic analysis
    d) Code generation
    Answer: c) Semantic analysis
    Explanation: Semantic analysis resolves references to variables and functions by checking their declarations and ensuring their correct usage.
  18. Which part of the compiler translates source code into an intermediate representation?
    a) Front-end
    b) Back-end
    c) Middle-end
    d) Preprocessor
    Answer: a) Front-end
    Explanation: The front-end of the compiler translates source code into an intermediate representation, which is then processed by the back-end.
  19. Which phase of the compiler removes unnecessary code and reduces code size?
    a) Lexical analysis
    b) Syntax analysis
    c) Semantic analysis
    d) Code optimization
    Answer: d) Code optimization
    Explanation: Code optimization removes unnecessary code and reduces code size to improve performance and reduce memory usage.
  20. Which part of the compiler performs error checking and reporting?
    a) Front-end
    b) Back-end
    c) Middle-end
    d) Preprocessor
    Answer: a) Front-end
    Explanation: The front-end of the compiler performs error checking and reporting to identify syntax and semantic errors in the source code.

Leave a Comment