QB Compiler
QB Compiler
QUESTION BANK
VI SEMESTER
1904602 – COMPILER DESIGN
Regulation – 2019
Academic Year 2023 – 2024 EVEN
Prepared by
Ms.V.Vijaypriya, Assistant Professor (O.G)
Ms.A.Lalitha Assistant Professor (Sel.G)
Dr.C.PabithaAssistant Professor (Sr.G)
SRM VALLIAMMAI ENGNIEERING COLLEGE
(An Autonomous Institution)
SRM Nagar, Kattankulathur – 603203.
10. Describe in detail about the subset construction of DFA from Remember BTL1
(13)
NFA
11 Define Lex and Lex specifications. How lexical analyzer is (13)Remember BTL1
constructed using lex? Give an example.
12 (i)Explain the lex program for tokens. (7) Evaluate BTL5
(ii) Describe in detail the tool for generating lexical analyzer. (6)
13 Find the NFA for the given regular expression and find the (13)Analyze BTL4
minimized DFA for the constructed NFA..( a* / b*)*
14 Find the minimized DFA for the regular expression: (13) Analyze BTL4
( 0 + 1 ) * (0 + 1) 1 0.
15 Discuss in detail about the output of each phase of compiler for (13) Understand BTL2
the expression a:=b+c*50.
16 Demonstrate the role of lexical analyzer in detail with (13) Apply BTL3
necessary diagrams
17 Determine the minimum -state DFA for the regular expression (13) Evaluate BTL5
(a / b)* a (a/b)
PART-C (15- MARK )
1. (i) Create languages denoted by the following regular (9) Create BTL6
expressions
a) (a|b)*a(a|b)(a|b)
b) a*ba*ba*ba*
c) !! (aa|bb)*((ab|ba)(aa|bb)*(ab|ba)(aa|bb)*)*
(ii) Write regular definitions for the following languages: (6)
a)All strings of lowercase letters that contain the five vowels
in order.
b)All strings of lowercase letters in which the letters are in
ascending lexicographic order.
c)Comments, consisting of a string surrounded by / and /,
without
an intervening */, unless it is inside double-quotes (")
2. Find transition diagrams for the following regular expression (15) Evaluate BTL5
and regular definition.
a(a|b)*a
((ε|a)b*)*
All strings of digits with at most one repeated digit.
All strings of a's and b's that do not contain the substring abb.
All strings of a's and b's that do not contain the subsequence
abb.
3. Evaluate that the following two regular expressions are (15) Evaluate BTL5
equivalent by showing that the minimum state DFA's are same
(a/b)*
(a*/b*)*
4. Explain in detail the tool for generating Lexical-Analyzer with (15) Evaluate BTL5
an example program.
5 Develop the Lex Program to recognize the identifiers, Create BTL6
constants and operators (15)
UNIT II SYNTAX ANALYSIS
Role of Parser – Grammars – Error Handling – Context-free grammars – Writing a grammar – Top
Down Parsing - General Strategies Recursive Descent Parser Predictive Parser-LL(1) Parser-Shift
Reduce Parser-LR Parser-LR (0)Item Construction of SLR Parsing Table -Introduction to LALR
Parser - Error Handling and Recovery in Syntax Analyzer-YACC.
PART-A (2 - MARKS)
1. Eliminate the left recursion for the grammar. Create BTL6
S → Aa | b
A →Ac | Sd |ε
2. Define handle pruning. Remember BTL1
3. Compute FIRST and FOLLOW for the following grammar Apply BTL3
S → AS
S →b
A →SA
A→a
4. State the concepts of Predictive parsing . Remember BTL1
5. Differentiate Top Down parsing and Bottom Up parsing? Understand BTL2
6. Define Recursive Descent Parsing. Remember BTL1
7. State the different error recovery methods of predictive Remember BTL1
parsing.
8. Write an algorithm for finding FOLLOW. Analyze BTL4
9. What is the main idea of Left factoring? Give an example. Understand BTL2
10. Define LL(1) Grammar. Remember BTL1
11. Difference between ambiguous and unambiguous grammar. Analyze BTL4
12. Define parser. Explain the advantages and disadvantages of LR Evaluate BTL5
parsing?
13. Define Augmented Grammar with an example. Remember BTL1
14. Evaluate the conflicts encountered while parsing? Evaluate BTL5
15. Point out the categories of shift reduce parsing. Analyze BTL4
16. How to create an input and output translator with YACC. Create BTL6
17. Give the four possible actions of LR Parsing. Understand BTL2
18. Solve the following grammar is ambiguous: S→aSbS / bSaS / Apply BTL3
€
19. Discuss when Dangling reference occur? Understand BTL2
20. Illustrate the use of GOTO function. Apply BTL3
21. Give the comparison between various LR parsers Evaluate BTL5
22. Write down the structure of YACC file Analyze BTL4
23. Differentiate Lex and yacc Understand BTL2
24. Write about Closure Operation Apply BTL3
PART-B (13- MARKS)
1. (i)Explain left recursion and Left Factoring. (7) Analyze BTL4
(ii)Eliminate left recursion and left factoring for the following (6)
grammar.
E→E+T|E-T|T
T → a | b | ( E ).
2. (i)Parse the input string 000111 for the grammar S-> 0S1| 01 (6) Create BTL6
(ii)Construct a parse tree for the input string w-cad using top
down parser . (7)
S->cAd
A->ab|a
3. (i)Analyze the give grammar to construct predictive parser (13)Analyze BTL4
S→ +SS | *SS | a with the string “+*aaa.
4. (i)Evaluate predictive parsing table for the following grammar (9) Evaluate BTL5
E→E+T | T
T→T*F | F
F→(E) | id
(ii) Parse the string id+id*id (4)
5. Solve the following grammar for the predictive parser and (13)Analyze BTL2
parse the string 000111
S>0S1
S->01
6. (i).Describe on detail about the various types of parser (7) Remember BTL1
(ii)Discuss about the context-free grammar. (6)
7. (i).Discuss in detail aabout the role of parser. (7) Remember BTL1
(ii).What are the Error recovery techniques used in Predictive (6)
parsing? Explain in detail.
8. (i)Give the predictive parser table for the following grammar. (8) Understand BTL2
S→ (L) | a
L→ L, S | S (5)
(ii)Parse the string (a, (a, a)) .
9. (i_Analyze the following grammar is a LALR grammar. (13)Analyze BTL4
S->CC
C->cC|d
(ii)Parse the input string ba using the table generated.
10. (i)Define YACC parser generator. List out the Error recovery (8) Remember BTL1
actions in YACC.
(ii) Define SLR (1) parser. Describe the Steps for the SLR (5)
parser.
11 (i)Show SLR parsing table for the following grammar (9) Apply BTL3
A->(A)|a
ii)Differentiate SLR and CLR (4)
12. Solve the following grammar to generate the SLR parsing (13)Understand BTL2
table.
E→E+T | T
T→T*F | F
F→F*| a| b
13. (i)Consider the following grammar (10) Apply BTL3
S →AS|b
A→SA|a.
Construct the SLR parse table for the grammar.
(ii)Show the actions of the parser for the input string “abab”. (3)
14. Give the LALR for the given grammar. (13)Understand BTL2
S->AA
A->Aa|b
15. Examine the following grammar using canonical parsing table. (13)Remember BTL1
S->CC
C->cC|d
16. Explain SLR parser.Construct SLR parse for the given (13)Evaluate BTL5
grammar.
S->L=R
S->R
L->*R
L->id
R->L
17. Show the bottom up parser for the following (13)Apply BTL3
The input aaa*a++ for the grammar
S->SS+
S->SS*
S->a
PART-C (15 -MARKS)
1. (i)What is Leftmost derivation and Rightmost derivation . (8) Create BTL6
Draw leftmost derivation and Rightmost derivation for the
following. E->E+E|E*E| id
(ii)What is an ambiguous and unambiguous grammar? Identify (7)
the following grammar is ambiguous or not.
E→E+E | E*E | (E)|-E |id for the sentence id +id*id
2 Explain in detail about the various types of Top –down (15)Evaluate BTL5
parsing.
3 Evaluate the LR parsing algorithm with an example (15)Evaluate BTL5
4 (i)What is CFG .Explain in detail about the Context-Free (8) Evaluate BTL5
Grammar
(ii)Construct Stack implementation of shift reduce parsing for (7)
the grammar
E->E+E
E->E*E
E->(E)
E->id and the input string id1+id2*id3 .
5. Discuss in detail about YACC Paser -Generator with an (15)Create BTL6
example program
UNIT-III INTERMEDIATE CODE GENERATION
Syntax Directed Definitions, Evaluation Orders for Syntax Directed Definitions, Intermediate
Languages: Syntax Tree, Three Address Code, Types and Declarations, Translation of Expressions,
Type Checking.
PART-A (2 - MARKS)
1. List out the two rules for type checking. Remember BTL1
2. Compare synthesized attributes and inherited attributes. Analyze BTL4
3. What is Annotated parse tree? Remember BTL1
4. Define Type checker. Remember BTL1
5. What is a syntax tree? Draw the syntax tree for the assignment Create BTL6
statement a := b * -c + b * -c
6. Define type systems. Remember BTL1
7. Express the rule for checking the type of a function. Understand BTL2
8. Define Syntax directed definition of a simple desk calculator. Remember BTL1
9. Identify the different types of intermediate representation. Evaluate BTL5
10. Give the difference between syntax-directed definitions and Understand BTL2
translation schemes.
11. State the type expressions. Remember BTL1
12. Illustrate the methods of implementing three-address Apply BTL3
statements.
13. Differentiate S-attribute and L-attribute definitions. Analyze BTL4
14. Create postfix notation for the given expression a+b*c. Create BTL6
15. Translate the conditional statement if a<b then 1 else 0 into Understand BTL2
three address code.
16. Test whether the following rules are L-attribute or not? Evaluate BTL5
Semantic rules
A.s = B.b;
B.i = f(C.c,A.s)
17. What are the methods of representing a syntax tree? Understand BTL2
18. Constrct the syntax directed definition for if-else statement Analyze BTL4
19. Examine the usage of syntax directed definition Apply BTL3
20. Show the three address code sequence for the assignment Apply BTL3
statement. d=(a-b)+(a-c)+(a-c)
21. Give the evaluation order of a SDD Evaluate BTL5
22 What is translation scheme? Understand BTL2
23. How will you evaluate semantic rules? Analyze BTL4
24. Illustrate how to construct syntax tree for an expression Apply BTL3
3. Suppose that we have a production A→BCD. Each of the four (13)Analyze BTL4
non terminal A, B, C and D have two attributes: S is a
synthesized attribute and i is an inherited attribute. Analyze
For each of the sets of rules below tell whether (i)the rules are
consistent with an S-attributed definition(ii) the rules are
consistent with an L-attributed definition and(iii) whether the
rules are consistent with any evaluation order at all?
A.s = B.i + C.s
A.s = B.i + C.s and D.i = A.i + B.s.
4. Illustrate in detail about the various instructions forms of three (13)Apply BTL3
address instruction with suitable examples
5. Discuss in detail about Understand BTL2
(i)Dependency graph (10)
(ii)Ordering Evaluation of Attributes. (3)
6. Create variants of Syntax tree. Explain in detail about it with (13)Create BTL6
suitable examples.
7. (i).Analyse the common three address instruction forms. (7) Analyze BTL4
(ii). Explain the two ways of assigning labels to the following (6)
three address statements
Do i=i+1;
While (a[i]<v);
8. Describe.in detail about Remember BTL1
(i) Quadruples (7)
(ii) Triples. (6)
9. (i) Describe in detail about addressing array Elements. (6) Remember BTL1
(ii) Discuss in detail about Translation of array reference. (7)
Describe in detail about types and declaration with suitable (13)Remember BTL1
10. examples.
11. Compare three address code for expression with the (13)Analyze BTL4
Incremental translation.
12. Show the intermediate code for the following code segment (13)Understand BTL2
along with the required syntax directed translation scheme
while ( i < 10 )
if ( i % 2 == 0 )
evensum = evensum + i
else
oddsum = oddsum + i
13. (i)State the rules for type checking with example. (7) Remember BTL1
(ii) Give an algorithm for type inference and polymorphic (6)
function.
14. Illustrate an algorithm for unification with its operation. (13)Apply BTL3
15. Write down the SDD for constructing syntax tree for the (13)Understand BTL2
expression a+b*5
16. Illustrate in detail about Bottom-up evaluation of S-attribute (13)Apply BTL3
definitions
17. Explain the evaluation order for SDD (13)Evaluate BTL5
PART-C(15 -MARKS)
1. Create the following uind the arithmetic expression a+- (15) Create BTL6
(b+c)* into
(i)Syntax tree
(ii)Quadruples
(iii)Triples
(iv)Indirect Triples
2. Explain what is SDD and examine syntax-directed definition to(15) Evaluate BTL5
differentiate expressions formed by applying the arithmetic
operators + and * to the variable x and constants ; expression :
x*(3*x+x*x)
3. Generate an intermediate code for the following code segment Create BTL6
with the required syntax-directed translation scheme.
(i)if ( a > b) (7)
x=a+b
else
x=a–b
(6)
(ii) p>q AND r<s OR u>r
4. What is Type conversion? What are the two types of type Evaluate BTL5
conversion? Formulate the rules for the type conversion. (15)
5. Explain the specification of a simple Type Checkers (15) Evaluate BTL5
int f(int n) {
int t, s;
if (n < 2) return 1;
s = f(n-1);
t = f(n-2);
return s+t;
}