Compiler Design Multiple Choice Questions
Compiler Design Multiple Choice Questions
1) Users write the programs in which language?
Low-level Language
High-Level Language
Decimal-Format
Middle-Level Language
Answer: b. High-Level Language
Explanation: Users write the program in a high-level language because it is easier to use, understand and remember.
2) Which computer program accepts the high-level language and converts it into assembly language?
Interpreter
Linker
Assembler
Compiler
Answer: d. Compiler
Explanation: Compiler is a computer program that accepts the code written in a high-level language and converts that code into the assembly language.
3) Does the compiler program translate the whole source code in one step?
No
Depends on the Compiler
Don't Know
Yes
Answer: d. Yes
Explanation: The compiler is that program which translates the whole high-level code into the machine code at once.
4) Which of the following file is an output of the assembler?
Program file
Object file
Data File
Task File
Answer: b. Object File
Explanation: The object file contains the object code, which is an output of an assembler.
5) Which tool is used for grouping of characters in tokens in the compiler?
Parser
Code optimizer
Code generator
Scanner
Answer: d. Scanner
Explanation: Scanner is a subroutine which is called by the compiler program. The scanner combines the characters and implements them to produce tokens.
6) What is the linker?
It is always used before the program execution.
It is required to create the load module.
It is the same as the loader
None of the above
Answer: b. It is required to create the load module.
Explanation: Linker is a program in the compiler which is required to create a load module.
7) Parsing is categorized into how many types?
three types
four types
two types
five types
Answer: c. two types
Explanation: In the compiler design, the parser is mainly categorized into top-down parsing and bottom-up parsing.
8) In which parsing, the parser constructs the parse tree from the start symbol and transforms it into the input symbol.
Bottom-up parsing
Top-down parsing
None of the above
Both a and b
Answer: b. Top-Down Parsing
Explanation: Top-down parsing is a technique which constructs the parse tree from the start symbol and transforms it to the input symbol. This type of parsing is also referred to as predictive or recursive parsing.
9) Which derivation is generated by the top-down parser?
Right-most derivation in reverse
Left-most derivation in reverse
Right-most derivation
Left-most derivation
Answer: d. Left-most derivation
Explanation: Top-down parser generates the left-most derivation. It constructs the parse tree from left to right and constructs the left-most derivation of the specified sentence.
10) Which derivation is generated by the bottom-up parser?
Right-most derivation in reverse
Left-most derivation in reverse
Right-most derivation
Left-most derivation
Answer: a. Right-most derivation in reverse.
Explanation: Bottom-up parser generates the right-most derivation in reverse. It constructs the parse tree from the input string to the root and tries to construct the right-most derivation of the specified string backward.
11) Which parser is most powerful in the following parsers?
Operator Precedence
SLR
Canonical LR
LALR
Answer: c. Canonical LR
Explanation: Canonical LR (CLR) is the most powerful parser than LALR and SLR.
12) The output of the lexical analyzer is _______
string character
a syntax tree
a set of RE
a set of tokens
Answer: d. a set of tokens
Explanation: Lexical analyzer gives the set of tokens as output. The set of tokens contains keywords, separators, literals, identifiers, and operators.
13) From the following grammars, which describes the lexical syntax?
Lexical Grammar
Context-free Grammar
Syntactic Grammar
Regular Grammar
Answer: a. Lexical Grammar
Explanation: Lexical grammar is a type of grammar which specifies the syntax of tokens.
14) Which grammar gives multiple parse trees for the same string?
Unambiguous
Regular
Ambiguous
All of the above
Answer: c. Ambiguous
Explanation: Ambiguous grammar is a context-free grammar which gives more than one leftmost or rightmost derivation for the same specified sentence.
15) In Compiler lexical analyzer is used for?
removing comments
removing whitespace
breaking the syntaxes in the set of tokens
All of the mentioned
Answer: d. All of the mentioned
Explanation: Lexical analyzer is used in the compiler for removing the Whitespace and comments. It is also used in breaking the syntaxes into the set of tokens.
16) Which is considered as the sequence of characters in a token?
Mexeme
Lexeme
Texeme
Pattern
Answer: b. Lexeme
Explanation: Lexemes are the string of alphanumeric characters in a single token. In the source program, lexemes are characters which are identified by the pattern for a token.
17) Which part of the compiler highly used the grammar concept?
Code optimization
Code generation
Parser
Lexical Analysis
Answer: c. Parser
Explanation: The concept of grammar is much used in the parser phase of the compiler.
The parser phase is next to the lexical analysis phase in the compiler. Parser generated the parse tree using the predefined grammar. The parser has two different techniques for creating a different parse tree.
18) Which phase of the compiler checks the grammar of the programming?
Code Optimization
Semantic Analysis
Code Generation
Syntax Analysis
Answer: d. Syntax Analysis
Explanation: Syntax Analysis is the 2nd phase of the compiler, which checks the given input string is the correct syntax of the programming language.
19) Which of the following component is important for semantic analysis?
Yacc
Lex
Symbol Table
Type Checking
Answer: d. Type checking
Explanation: In the semantic analysis, type checking is an important component because it verifies the program's operations from the semantic conventions.
20) Which phase of the compiler is also known as Scanner?
Syntax Analysis
Lexical Analysis
Semantic Analysis
Code generation
Answer: b. Lexical Analysis
Explanation: The first part of the compiler (lexical analysis) is also known as a scanner. It scans the characters from the source program and implements them to produce tokens.
21) Which phase of the compiler is also known as Parser?
Code Optimization
Semantic Analysis
Syntax Analysis
Lexical Analysis
Answer: c. Syntax Analysis
Explanation: The phase of the compiler next to the lexical analysis phase is also known as Parser.
Syntax analysis or parser accepts the tokens produced by the lexical analysis and gives the parse tree in the output.
22) Which of the following parser is a top-down parser?
An LALR parser
A LR parser
Operator precedence parser
Recursive descent parser
Answer: d. Recursive descent parser
Explanation: Recursive descent parser is a type of top-down parser which generates the parse tree from top to bottom and reads the input string from left to right.
23) Keywords are recognized in a compiler during -
the code generation
the data flow analysis
the lexical analysis of the program
the program parsing
Answer: c. the lexical analysis of the program
Explanation: Keywords are firstly recognized during the lexical analysis of the program in the compiler.
24) Leaf nodes in a parse tree indicate?
sub-terminals
half-terminals
non-terminals
terminals
Answer: d. terminals.
Explanation: All the leaf nodes in the parse tree indicate the terminals. And all the interior nodes indicate non-terminals.
25) Which graph describes the basic block and successor relationship?
Control graph
DAG
Flow graph
Hamilton graph
Answer: c. Flow graph
Explanation: A flow graph is a graph of the compiler which describes the basic blocks and how the program control is passed between the blocks.
26) Which language is accepted by the push-down automata?
Type 0 language
Type 1 language
Type 2 language
Type 3 language
Answer: c. Type 2 language
Explanation: According to the Chomsky hierarchy, push down automata accepts the Type 2 language, which is used for context-free language.
27) The most general phase of structured grammar is?
Context-sensitive grammar
Context-free grammar
Regular grammar
All of these
Answer: a. Context Sensitive Grammar
Explanation: Context-sensitive grammar is the most general phase of structured grammar because, in this grammar, the left-hand side and the right side contain the terminals or non-terminals.
28) In the compiler, the function of using intermediate code is:
to improve the register allocation
to increase the error reporting & recovery.
to make semantic analysis easier.
to increase the chances of re-using the machine-independent code optimizer in other compilers.
Answer: d. to increase the chances of re-using the machine-independent code optimizer in other compilers.
Explanation: After semantic analysis, the intermediate code increases the chances of reusing the machine-independent code optimizer in other compilers.
29) In how many types of optimization can be divided?
two types
three types
four types
five types
Answer: a. two types
Explanation: The code optimization technique is divided into machine-dependent and machine-independent types.
30) The value of which variable is updated inside the loop by a loop-invariant value?
loop
strength
induction
invariable
Answer: c. induction
Explanation: The value of the induction variable is updated inside the loop by a loop-invariant value.
31) Which compiler runs on one machine and generates code for multiple machines?
Multipass compiler
Cross compiler
Optimizing compiler
Onepass compiler
Answer: b. Cross compiler
Explanation: Cross compiler is a compiler which runs on one machine and generates code for more than one machine.
32) Which of the following is not a characteristic of the compiler?
More execution time
Debugging process is slow
The execution takes place after the removal of all syntax errors
Firstly scans the entire program and then transforms it into machine-understandable code
Answer: a. More execution time
Explanation: The compiler does not take more time to execute. So, more execution time is not a characteristic of the compiler.
33) Which phenomenon happens when the non-terminal on the left side is repeated as the first symbol on the right side?
Left-most derivation
Left recursion
Left factoring
Left parsing
Answer: b. Left recursion
Explanation: Left recursion is the process in which non-terminal on the left side of the production is the same on the right side as the leftmost symbol.
34) In which derivation the right-most non-terminal symbol is replaced at each step?
Right look ahead
Right claim
Rightmost
Right non-terminal
Answer: c. Rightmost
Explanation: The rightmost derivation is that derivation of context-free grammar, which replaces the rightmost non-terminal symbol at each step.
35) In which derivation the leftmost non-terminal symbol is replaced at each step?
Left recursion
Left non-terminal
Left pushdown
Leftmost
Answer: d. Leftmost
Explanation: The leftmost derivation is that derivation of context-free grammar which replaces the leftmost non-terminal symbol at each step.
36) The compiler can detect what type of errors?
neither logical nor grammatical error
logical errors only
grammatical errors only
both grammatical and logical errors
Answer: c. grammatical errors only.
Explanation: Compiler is a computer program that detects grammatical errors, not logical errors.
37) Which symbol is not related to context-free grammar?
End symbol
Start symbol
Non-terminal symbol
Terminal symbol
Answer: a. End symbol
Explanation: Context-free grammar is that grammar which consists of the start symbol, set of terminals, set of non-terminal symbols and the set of productions.
38) Which method merges the multiple loops into the single one?
Constant Folding
Loop rolling
Loop fusion or jamming
None of the above
Answer: c. Loop fusion or Loop jamming
Explanation: Loop fusion is an optimization technique which merges the multiple bodies of loops into a single body. This programming technique may reduce the runtime performance of the program.
39) Which parser is known as the shift-reduce parser?
Bottom-up parser
Top-down parser
Both Top-down and bottom-up
None of the Above
Answer: a. Bottom-up parser
Explanation: Bottom-up parser in the compiler is also called the shift-reduce parser.
40) Which of the following tree is the pictorial identification of the derivation?
The oct tree
The parse tree
The binary tree
None of the above
Answer: b. The parse tree
Explanation: The tree which represents the syntactic structure of the string is known as the parse tree. It also indicates the terminal, start symbol, and non-terminal symbols.
41) The full form of YACC is:
Yet Another Computer Computer
Yet Another Computer Compiler
Yet Another Compiler Computer
Yet Another Compiler Compiler
Answer: d. Yet Another Compiler Compiler
Explanation: The full form of YACC is Yet Another Compiler Compiler, which produces the LALR (1) grammar parser.
42) What type of conflicts can occur in the shift-reduce parsing?
reduce/reduce
shift/reduce
Both shift/reduce and reduce/reduce
None of the above
Answer: b. Shift/reduce
Explanation: None
43) Which of the following grammar can be translated into DFAs?
Generic Grammar
Left Linear Grammar
Right Liner Grammar
All of the above
Answer: c. Right Linear Grammar
Explanation: A right linear grammar is that grammar which contains all the non-terminals on the right-hand side at the right ends. This grammar can be simply converted into the DFA.
44) Which algorithm invokes a function GETREG()?
Code motion algorithm
Code optimization algorithm
Intermediate Code
Code generation algorithm
Answer: d. Code generation algorithm
Explanation: Code generation algorithm invokes the GETREG() function to check the status of available registers and the location where the result should be stored. This function also selects the registers for every memory location.
45) FORTRAN programming language is a _______
Turing language
Context-sensitive language
Context-free language
Regular language
Answer: b. Context-sensitive language.
Explanation: Context-sensitive languages are those languages which are defined by context-sensitive grammar.
46) The execution time of the code depends on?
the usage of machine idioms
the way the registers are used
the orders in which the computations are performed
All of the mentioned
Answer: d. All of the mentioned
Explanation: None
47) Which optimization technique is used to reduce the multiple jumps?
Latter optimization technique
Peephole optimization technique
Local optimization technique
Code optimization technique
Answer: b. Peephole optimization technique
Explanation: The peephole optimization technique is used to reduce the memory footprint and the size of code. It is also used to improve the program performance.
48) Which of the following term is used to keep track of the location where the current values of the name are stored?
Register descriptor
Address descriptor
Allocation descriptor
Flag register
Answer: b. Address descriptor
Explanation: The address descriptor is a descriptor of the code generator technique, which keeps track of the memory location.
49) Which of the following are labeled by operator symbol?
Root
Interior nodes
Leaves
Nodes
Answer: b. Interior nodes
Explanation: In the compiler, interior nodes are specified by the operator symbol.
50) DAG is an abbreviation of?
Detecting Acyclic Graph
Data Acyclic Graph
Dynamic Acyclic Graph
Directed Acyclic Graph
Answer: d. Directed Acyclic Graph
Explanation: DAG is a Directed Acyclic Graph, which is constructed using three address code for optimizing the basic blocks.
51) Which of the following is used in various stages or phases of the compiler?
Records
Program
Symbol Table
Table
Answer: c. Symbol Table
Explanation: A symbol table is simply a table which is created and maintained by the compiler and used in various phases of the compiler.
52) Which of the following structure has four fields?
Parse tree
Triples
Indirect Triples
Quadruples
Answer: d. Quadruples
Explanation: Quadruples are a record structure in a compiler with four fields for implementing the three address code.
53) In which of the following tree, the leaf indicates the operand, and the interior node represents the operator.
Syntax tree
Parser tree
Structured tree
Sematic tree
Answer: a. Syntax tree
Explanation: Syntax tree is a tree in the compiler which represents operands by leaf and operator by interior nodes.
54) Which statement is an abstract form of intermediate code?
3- address
2-address
address
Intermediate code
Answer: a. 3-address
Explanation: None
55) Which mapping is described by the implementation of the syntax-directed translator?
Parse table
Input
Output
Input-Output
Answer: d. Input-Output
Explanation: Input-Output is a mapping which is described by the implementation of the syntax-directed translator (SDT).
56) Which of the following function is called the canonical collection of LR(0) item.
FIRST
GOTO
COMPUTE
FOLLOW
Answer: b. GOTO
Explanation: GOTO is a function that is called for defining the DFA. And, it is called the canonical collection of LR(0) item.
57) Which of the following option is not a function of the shift-reduce parser?
Reduce
Accept
Go
Shift
Answer: c. Go
Explanation: The shift-reduce parser contains only shift, reduce, error and accept action. That's why Go is not a function of the shift-reduce parser.
58) Which of the following grammar has no two adjacent non-terminals?
Irregular grammar
Regular grammar
Operator
Precedence grammar
Answer: c. Operator
Explanation: Operator grammar is the grammar that does not contain two adjacent non-terminals on the right side of the production. It is that grammar that defines the mathematical operators.
59) DFA is an abbreviation of.
Non Deterministic Finite set Automata
Deterministic Finite Automata
Non Deterministic Finite Automata
Deterministic Finite set Automata
Answer: b. Deterministic Finite Automata
Explanation: The full form of DFA is Deterministic Finite Automata. It is also known as Deterministic Finite Acceptor. The automata read only one symbol from the input string at a time.
60) NFA is an abbreviation of.
Non Deterministic Finite set Automata
Deterministic Finite Automata
Non Deterministic Finite Automata
Deterministic Finite set Automata
Answer: c. Non Deterministic Finite Automata
Explanation: The full form of NFA is Non-Deterministic Finite Automata. It is also known as a Non-Deterministic Finite State-machine. An Automaton gives more than one possible transition of the same state.
Comments
Post a Comment