Compiler Design

Download Q&A
Q. In an LR parser, what is the purpose of the 'shift' action?
  • A. To reduce a production.
  • B. To push a state onto the stack.
  • C. To pop a state from the stack.
  • D. To accept the input.
Q. In lexical analysis, what is a 'token'?
  • A. A sequence of characters in the source code
  • B. A data structure representing a keyword or identifier
  • C. A type of error in the source code
  • D. A part of the syntax tree
Q. In LR parsing, what is the significance of the 'shift' action?
  • A. To reduce the current production.
  • B. To move the input pointer to the next token.
  • C. To add a new production to the parse tree.
  • D. To backtrack to a previous state.
Q. In syntax-directed translation, what does an attribute represent?
  • A. A semantic value associated with a grammar symbol
  • B. A token type in lexical analysis
  • C. A machine instruction in code generation
  • D. A parsing strategy
Q. In syntax-directed translation, what is an intermediate code?
  • A. A high-level representation of the source code
  • B. A low-level machine code
  • C. A representation that is easier to optimize than source code
  • D. A representation that is not used in modern compilers
Q. In syntax-directed translation, what is the role of semantic actions?
  • A. To define the grammar
  • B. To perform type checking
  • C. To generate intermediate code
  • D. To handle syntax errors
Q. In syntax-directed translation, which of the following is true about synthesized attributes?
  • A. They are computed from the attributes of the parent node
  • B. They are computed from the attributes of the child nodes
  • C. They can only be used in inherited attributes
  • D. They are not used in syntax-directed definitions
Q. In the context of LL parsing, what does the '1' in LL(1) signify?
  • A. One lookahead token is used.
  • B. One leftmost derivation is produced.
  • C. One parsing table is required.
  • D. One recursive call is made.
Q. In three-address code, how is a binary operation typically represented?
  • A. result = operand1 operator operand2
  • B. operand1 operator operand2 = result
  • C. result operator operand1 operand2
  • D. operand1 operand2 operator = result
Q. In three-address code, how many operands can each instruction have?
  • A. One
  • B. Two
  • C. Three
  • D. Four
Q. What does common subexpression elimination achieve?
  • A. It reduces the number of variables
  • B. It eliminates duplicate calculations
  • C. It simplifies control flow
  • D. It increases the number of function calls
Q. What does dead code elimination refer to?
  • A. Removing code that is never executed
  • B. Optimizing loops
  • C. Reducing variable declarations
  • D. Simplifying expressions
Q. What does LR stand for in LR parsing?
  • A. Left-to-right
  • B. Right-to-left
  • C. Left-to-right with lookahead
  • D. Right-to-left with lookahead
Q. What does the 'reduce' action do in an LR parser?
  • A. It shifts the next input symbol onto the stack.
  • B. It pops symbols from the stack and replaces them with a non-terminal.
  • C. It accepts the input string.
  • D. It generates an error.
Q. What does the term 'grammar ambiguity' refer to?
  • A. Multiple valid parse trees for a single input
  • B. The inability to parse a string
  • C. A grammar that cannot be expressed in BNF
  • D. A grammar with too many productions
Q. What does the term 'register allocation' refer to in code generation?
  • A. Assigning variables to CPU registers
  • B. Allocating memory for dynamic variables
  • C. Managing stack space for function calls
  • D. Distributing tasks among multiple processors
Q. What does the term 'symbol table' refer to in a compiler?
  • A. A table of syntax rules
  • B. A data structure that stores information about identifiers
  • C. A list of optimization techniques
  • D. A representation of the abstract syntax tree
Q. What does the term 'token' refer to in the context of lexical analysis?
  • A. A sequence of characters
  • B. A data structure for syntax trees
  • C. A meaningful sequence of characters
  • D. A type of error in parsing
Q. What is a 'lexeme' in the context of lexical analysis?
  • A. The smallest unit of meaning in a programming language
  • B. The actual sequence of characters that matches a token
  • C. A type of syntax error
  • D. A representation of a variable in the symbol table
Q. What is a 'lexeme'?
  • A. The smallest unit of a program
  • B. A sequence of characters that matches a token
  • C. A type of syntax error
  • D. A part of the symbol table
Q. What is a common application of syntax-directed translation in compilers?
  • A. Lexical analysis
  • B. Code generation
  • C. Syntax checking
  • D. Semantic analysis
Q. What is a common characteristic of intermediate code?
  • A. It is always in binary format
  • B. It is platform-specific
  • C. It is easier to analyze than high-level code
  • D. It cannot be optimized
Q. What is a common limitation of LL parsers?
  • A. They cannot handle ambiguous grammars.
  • B. They require more memory than LR parsers.
  • C. They can only parse regular languages.
  • D. They are slower than LR parsers.
Q. What is a common optimization technique applied during intermediate code generation?
  • A. Loop unrolling
  • B. Dead code elimination
  • C. Inlining
  • D. All of the above
Q. What is intermediate code in the context of compilers?
  • A. The final machine code
  • B. A high-level representation of the source code
  • C. An abstract representation of the program
  • D. The source code itself
Q. What is loop unrolling?
  • A. A technique to increase the number of iterations in a loop
  • B. A method to reduce the overhead of loop control
  • C. A way to eliminate loops entirely
  • D. A technique to optimize recursive functions
Q. What is the advantage of using an abstract syntax tree (AST) in intermediate code generation?
  • A. It is easier to optimize than linear representations
  • B. It directly represents machine instructions
  • C. It simplifies lexical analysis
  • D. It is more compact than binary code
Q. What is the main advantage of using syntax-directed translation?
  • A. It simplifies the parsing process
  • B. It allows for easy integration of semantic analysis
  • C. It eliminates the need for an intermediate representation
  • D. It speeds up the lexical analysis phase
Q. What is the main challenge of optimizing code for different architectures?
  • A. Different programming languages
  • B. Varying instruction sets and performance characteristics
  • C. Inconsistent coding standards
  • D. Lack of documentation
Q. What is the main characteristic of LL parsing?
  • A. It uses a top-down approach.
  • B. It uses a bottom-up approach.
  • C. It requires left recursion.
  • D. It is non-deterministic.
Showing 1 to 30 of 98 (4 Pages)
Soulshift Feedback ×

On a scale of 0–10, how likely are you to recommend The Soulshift Academy?

Not likely Very likely